这有什么区别:
Controller
@user = User.new
@order = Order.new
View :
<%= form_for :user do |user| %>
...
...
<%= fields_for :order do |order| %>
...
...
<% end %>
<% end %>
我可以像这样提取参数对象中的值 params[:user] 和 params[:order]
但我也可以这样写:
<%= form_for :user do |user| %>
...
...
<%= user.fields_for :order do |order| %>
...
...
<% end %>
<% end %>
我可以像这样提取参数对象中的值 params[:user][:order]。
是否相等,以我从中提取值的方式来区分?
最佳答案
如果您在 User
模型中使用此行,通常您会使用 fields_for
的嵌套版本:
has_many :orders
accepts_nested_attributes_for :orders
通过定义它,您将能够通过在您的 create
操作中使用它来同时创建新用户和新订单记录*s* 用户 Controller
:
@user = User.new(params[:user])
因为您现在正在使用 accepts_nested_attributes_for
,订单属性将作为 params[:user][:orders_attributes]
传递。
关于ruby-on-rails - Ruby on Rails 中的 Fields_for 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4424267/