【发布时间】:2014-12-05 19:14:05
【问题描述】:
我真的无法理解 Rails 4 的强参数、belongs_to 关联和带 fields_for 的表单。
假设我有报价的模型:
class Quote < ActiveRecord::Base
belongs_to :fee
accepts_nested_attributes_for :fee
现在,我已经在数据库中植入了一些费用,并使用 fields_for 在我的 form_for @quote 上放置了一些单选按钮。单选按钮的值只是记录的 ID。
这里是麻烦的部分,控制器:
def create
@quote = Quote.new(quote_params)
...
end
def quote_params
params.require(:quote).permit(:amount_from, fee_attributes: [:id])
end
据我了解,Rails 应该自动获取带有一些 id 的费用记录,但是有一些神秘的错误。
参数哈希为:"quote"=>{"amount_from"=>"1200", "fee_attributes"=>{"id"=>"1"}}
日志尾:
Completed 404 Not Found in 264ms
ActiveRecord::RecordNotFound (Couldn't find Fee with ID=1 for Quote with ID=)
app/controllers/quotes_controller.rb:14:in `create'
我真的不明白这里发生了什么,已阅读 Rails 协会指南,搜索了一个小时的所有信息,但无济于事。
我想在这里实现的是理解正确的“Rails 方式”,以使用我在表单中输入的一些参数获取新 Quote 对象的一些关联。
【问题讨论】:
标签: ruby-on-rails-4 associations nested-attributes strong-parameters