- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从学习 Rails 开始,为此我开始开发一个具有嵌套属性的运输应用程序。基本上我有模型 User
, Box
和 BoxKind
表,在 Box
和 Kind
之间有 HABTM >.
用户模型
class User < ActiveRecord::Base
has_many :boxes
accepts_nested_attributes_for :boxes
end
盒子模型
class Box < ActiveRecord::Base
belongs_to :user, :foreign_key => "user_id"
accepts_nested_attributes_for :user
has_and_belongs_to_many :kinds, join_table: :boxes_kinds
accepts_nested_attributes_for :kinds
end
亲切模型
class Kind < ActiveRecord::Base
has_and_belongs_to_many :boxes, join_table: :boxes_kinds
end
当我尝试向数据库中添加新记录时,我收到了一个unknown attribute: box_id
错误。这让我有点困惑,因此我向名为 ref_no
的 Box
模型添加了自定义主键。
我哪里错了?
更新 正如@NitinVerma 所要求的,另外还有控制台日志:
Started POST "/user" for 127.0.0.1 at 2014-08-18 19:27:11 +1000
Processing by UserController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Xt5OvI9hfU98rHQ0fGb5NDui1lRg0Bned8+03Hurr1Y=", "user"=>{"name"=>"Mark", "email"=>"mark@abc.com", "address"=>"Some address ", "postcode"=>"1928", "tel_no"=>"0394884994", "state"=>"VIC", "boxes_attributes"=>{"0"=>{"ref_no"=>"1005", "quantity"=>"2", "kinds_attributes"=>{"1408354027248"=>{"big"=>"2", "small"=>"", "odd"=>"", "trunck"=>"", "_destroy"=>"false"}, "0"=>{"big"=>"", "small"=>"", "_destroy"=>"1"}}, "collected_at(1i)"=>"2012", "collected_at(2i)"=>"8", "collected_at(3i)"=>"18", "collected_at(4i)"=>"08", "collected_at(5i)"=>"59", "destination_country"=>"UK", "destination_country_address"=>"Regency Street 18", "shipped"=>"1", "shipped_at(1i)"=>"2014", "shipped_at(2i)"=>"8", "shipped_at(3i)"=>"18", "shipped_at(4i)"=>"08", "shipped_at(5i)"=>"59", "reached"=>"0", "reached_at(1i)"=>"2014", "reached_at(2i)"=>"8", "reached_at(3i)"=>"18", "reached_at(4i)"=>"08", "reached_at(5i)"=>"59"}}}, "commit"=>"Submit"}
Unpermitted parameters: _destroy
Unpermitted parameters: _destroy
Completed 500 Internal Server Error in 32ms
ActiveRecord::UnknownAttributeError (unknown attribute: box_id):
app/controllers/user_controller.rb:21:in `create'
最佳答案
HABTM
我认为问题出在您的 habtm
表上:
create_table "boxes_kinds", id: false, force: true do |t|
t.integer "ref_no", null: false
t.integer "kind_id", null: false
end
Rails has_and_belongs_to_many
表旨在包含每个关联表的 foreign_key
:
您遇到的问题是,由于您的 表的box_id
为ref_no
,Rails 无法确定要将值保存到的列;因此调用您看到的异常。
我建议为您的 has_and_belongs_to_many
关联使用 association_foreign_key
或 foreign_key
参数:
#app/models/box.rb
Class Box < ActiveRecord::Base
has_and_belongs_to_many :kinds, foreign_key: "ref_no"
end
#app/models/kind.rb
Class Kind < ActiveRecord::Base
has_and_belongs_to_many :boxes, association_foreign_key: "ref_no"
end
关于ruby-on-rails - ActiveRecord::UnknownAttributeError in UserController#create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25360113/
我刚刚将应用程序推送到生产 Heroku 环境。 基本上有一个Bus型号,它有一个 seats属性 class Bus "24", "departure_time(1i)"=>"2011", "dep
我有 2 个模型,它们都在“Loot”下命名 战利品::截图收藏 belongs_to :agent has_many :screenshots, class_name: 'Loot::Screens
我正在关注 tutorial关于如何创建带有评论和标签的 Ruby-on-Rails 博客网站,目前为止我的工作已放在 https://github.com/khpeek/jumpstart-blog
尝试在生产环境中创建模型实例时出现UnknownAttributeError。在本地工作正常,但在 Heroku 上不行。 ActiveRecord::UnknownAttributeError: u
我从学习 Rails 开始,为此我开始开发一个具有嵌套属性的运输应用程序。基本上我有模型 User , Box 和 BoxKind 表,在 Box 和 Kind 之间有 HABTM >. 用户模型 c
我的 heroku-server 出现了一些问题。在本地没有遇到这个问题: 2014-07-23T16:59:23.249055+00:00 app[web.1]: ActiveRecord::Unk
我正在设置我的种子文件以将一些数据添加到我的 Rails 5 应用程序。当我运行 rake db:seed 时出现此错误 rake aborted! ActiveModel::UnknownAttri
我目前正在使用 Spree 电子商务。我已经编写了自己的扩展程序,实际上我可以在控制台中这样调用: hash = {:email=>"test@2.pl", :passwo
我正在将我的应用程序从 Rails4.2.8 迁移到 Rails5.2.3,将 paper-trail gem 版本“7.1.2”更新为“10.3.1”。我使用的是 Rspec - 3.8.2。一切正
我正在尝试在测试中创建一个 Student 记录,如下所示: student= Student.create!(:work_phone => "1234567890") 但我收到此错误: Active
我在运行测试时遇到了这个错误。我已经检查以确保所有 email_confirmation s 拼写正确并且(除非我疯了)它们是。我是一个 Rails 菜鸟,所以它可能很简单。 用户模型 class U
我是一名优秀的程序员,十分优秀!