ruby-on-rails - Ruby on Rails 中的 Fields_for 方法

标签 ruby-on-rails ruby ruby-on-rails-3

这有什么区别:

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/

相关文章:

ruby-on-rails - 三元运算符和html

ruby-on-rails - 将数组数组转换为哈希数组

ruby - Ruby 中的 JSON 解析

ruby-on-rails - 使用 xpath,定位具有给定部分 id(可能是正则表达式)的 HTML 元素

ruby-on-rails-3 - ActionMailer 发送带有空正文的电子邮件

ruby - 字符串中的 Rails 3 link_to

javascript - 从 javascript 访问实例变量

ruby-on-rails - Heroku 上的应用程序错误 : An error occurred in the application and your page could not be served

ruby - 使用 RSpec 进行性能测试

ruby-on-rails - Rails 未定义方法 `id'