ruby-on-rails - 将记录添加到 rails 中的表

标签 ruby-on-rails ruby database sqlite

这是我的 schema.rb 文件(向您展示我制作的表格)

ActiveRecord::Schema.define(version: 20170413171853) do

create_table "bookmarks", force: :cascade do |t|
t.string   "bk_name"
t.string   "size"
t.string   "brand"
t.string   "product_id"
t.integer  "mrp"
t.text     "colour"
t.integer  "stock"
t.integer  "discount"
t.text     "bk_description"
t.integer  "bk_id"
t.integer  "cart_unit"
t.datetime "created_at",     null: false
t.datetime "updated_at",     null: false
end



create_table "books", force: :cascade do |t|
    t.string   "book_name"
    t.integer  "cart_unit"
    t.integer  "product_id"
    t.integer  "pages"
    t.integer  "stock"
    t.text     "synopsis"
    t.integer  "mrp"
    t.string   "author"
    t.string   "publisher"
    t.integer  "rating"
    t.string   "genre_name"
    t.integer  "book_id"
    t.integer  "genre_id"
    t.integer  "discount"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  create_table "customers", force: :cascade do |t|
    t.integer  "customer_id"
    t.integer  "phone"
    t.string   "email"
    t.string   "password"
    t.string   "last_name"
    t.string   "first_name"
    t.string   "address_1"
    t.string   "address_2"
    t.string   "city"
    t.string   "state"
    t.integer  "postal_code"
    t.datetime "created_at",  null: false
    t.datetime "updated_at",  null: false
  end

  create_table "genres", force: :cascade do |t|
    t.integer  "genre_id"
    t.string   "genre_name"
    t.text     "description"
    t.datetime "created_at",  null: false
    t.datetime "updated_at",  null: false
  end

  create_table "notebooks", force: :cascade do |t|
    t.integer  "ntbk_id"
    t.integer  "pages"
    t.text     "ntbk_description"
    t.string   "ntbk_name"
    t.string   "brand"
    t.integer  "product_id"
    t.text     "colour"
    t.text     "stock"
    t.integer  "mrp"
    t.integer  "cart_unit"
    t.integer  "discount"
    t.datetime "created_at",       null: false
    t.datetime "updated_at",       null: false
  end

  create_table "orders", force: :cascade do |t|
    t.integer  "order_id"
    t.integer  "order_number"
    t.date     "order_date"
    t.date     "shipping_date"
    t.date     "payment_date"
    t.integer  "bk_id"
    t.string   "bk_name"
    t.integer  "ntbk_id"
    t.integer  "bk_cart"
    t.integer  "book_cart"
    t.integer  "ntbk_cart"
    t.string   "ntbk_name"
    t.integer  "ntbk_mrp"
    t.integer  "bk_mrp"
    t.integer  "book_mrp"
    t.string   "book_name"
    t.integer  "book_id"
    t.datetime "created_at",    null: false
    t.datetime "updated_at",    null: false
  end

  create_table "products", force: :cascade do |t|
    t.integer  "product_id"
    t.string   "product_name"
    t.text     "description"
    t.datetime "created_at",   null: false
    t.datetime "updated_at",   null: false
  end

  create_table "reviews", force: :cascade do |t|
    t.integer  "review_id"
    t.integer  "ntbk_id"
    t.integer  "bk_id"
    t.integer  "customer_id"
    t.integer  "rating"
    t.text     "content"
    t.date     "date_written"
    t.integer  "book_id"
    t.datetime "created_at",   null: false
    t.datetime "updated_at",   null: false
  end

end

我的问题是:我想向表中添加记录。我运行了命令 rails console --sandbox。我读过,如果您没有向表中添加任何内容并运行 bookmark.new,它将返回一个属性为 nill 的对象。嗯,这不会发生在我的情况下。

irb(main):001:0> genre.new
NameError: undefined local variable or method `genre' for main:Object
    from (irb):1
from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands/console.rb:65:in `start'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands/console_helper.rb:9:in `start'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:78:in `console'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands.rb:18:in `<top (required)>'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `block in require'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require'

from /home/gauri/Academics/CS/Ruby on Rails/ScholarShip/ScholarShip/bin/rails:9:in `<top (required)>'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `block in load'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/spring-2.0.1/lib/spring/commands/rails.rb:6:in `call'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/spring-2.0.1/lib/spring/command_wrapper.rb:38:in `call'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/spring-2.0.1/lib/spring/application.rb:191:in `block in serve'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/spring-2.0.1/lib/spring/application.rb:161:in `fork'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/spring-2.0.1/lib/spring/application.rb:161:in `serve'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/spring-2.0.1/lib/spring/application.rb:131:in `block in run'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/spring-2.0.1/lib/spring/application.rb:125:in `loop'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/spring-2.0.1/lib/spring/application.rb:125:in `run'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/spring-2.0.1/lib/spring/application/boot.rb:19:in `<top (required)>'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'

from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from -e:1:in `<main>'

到底发生了什么,为什么?

编辑:在输入 Genre.new 时,会发生这种情况:-

NameError: undefined local variable or method `slef' for #<Class:0x00557fd5727ba8>
Did you mean?  sleep
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activerecord-5.0.1/lib/active_record/dynamic_matchers.rb:21:in `method_missing'
    from /home/gauri/Academics/CS/Ruby on Rails/ScholarShip/ScholarShip/app/models/genre.rb:2:in `<class:Genre>'
    from /home/gauri/Academics/CS/Ruby on Rails/ScholarShip/ScholarShip/app/models/genre.rb:1:in `<top (required)>'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:477:in `load'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:477:in `block in load_file'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:662:in `new_constants_in'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:476:in `load_file'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:375:in `block in require_or_load'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:37:in `block in load_interlock'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies/interlock.rb:12:in `block in loading'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/concurrency/share_lock.rb:150:in `exclusive'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies/interlock.rb:11:in `loading'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:37:in `load_interlock'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:358:in `require_or_load'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:511:in `load_missing_constant'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:203:in `const_missing'
... 2 levels...
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands/console_helper.rb:9:in `start'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:78:in `console'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands.rb:18:in `<top (required)>'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `block in require'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require'
    from /home/gauri/Academics/CS/Ruby on Rails/ScholarShip/ScholarShip/bin/rails:9:in `<top (required)>'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `block in load'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/gauri/.rbenv/versions/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from -e:1:in `<main>'

最佳答案

你是否在类型模型 (app/models/genre.rb) 的任何地方使用了 slef 而不是 self

能否请您发布类型模型的代码?

关于ruby-on-rails - 将记录添加到 rails 中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43492575/

相关文章:

ruby - 在 Ruby 的模块中包含模块时如何解决 namespace 冲突?

ruby-on-rails - 如何将 Heroku 日志保存到文本文件

sql - 检索这些记录的查询是什么?

mysql - 具有 2 种用户类型的用户表的数据库建模

javascript - 用于比较开始和结束日期的 jQuery 验证

java - 文件存储和检索的好方法是什么?

ruby-on-rails - 服务器在等待外部 api 响应时挂起所有请求

ruby-on-rails - 同一类中包含具有相同方法名称的两个模块

MongoDB 查询 - 返回切片数组

ruby-on-rails - Activeadmin:无法命名模型 'Action'