我有一个Rfq控制器我正在创建新的或更新现有的Rfqs,当我创建或更新对象被保存时,我想要的是因为我有引号数params我想用params中的引号更新line_items表保存Rfqs后,在quote_price列中显示[:quotes]
我知道它令人困惑,但是谁应该得到一些暗示我想问的暗示。
答案 0 :(得分:12)
如果您尝试在模型中使用params
哈希,则违反了MVC的原则。该模型应该独立于论点。如果您尝试执行以下操作:
# controller
Model.foo
# model
def foo
params[:bar].reverse!
end
您应该执行以下操作:
# controller
Model.foo(params[:bar])
# model
def foo(foobar)
foobar.reverse!
end
答案 1 :(得分:2)
老实说,如果它处理params
,将这种类型的逻辑放在控制器中可能是一个好主意,以免你混淆模型和控制器的责任。
也就是说,在控制器:
中if @foo.save
# Update line_items using params[:quotes]
end
答案 2 :(得分:1)
我认为您希望能够拥有一个保存主对象和所有子对象的表单。如果没有,请不要理会。 p>
在rails中,这被命名为“nested_attributes”
你会把它添加到你的模型中:
accepts_nested_attributes_for :quotes
# assuming you have
has_many :quotes
然后在表单视图中:
<% form.fields_for :quotes do |child_form| %>
<%= child_form.text_field :name %>
<% end %>
在Ryan的博客上查看:Nested Attributes