带有命名空间的Rails 5中的Form_for与form_with

时间:2018-01-10 22:38:07

标签: ruby-on-rails ruby-on-rails-5

我的Rails 5应用程序中有一个名称空间资源,并且需要正确的表单。

我在Rails 5中使用Platform的脚手架给了我:

<%= form_with(model: platform, local: true ) do |form| %> 

在Rails 4中,我将包含我的命名空间('customer'),如:

<%= form_for [:customer, @platform] do |f| %>

那么Rails 5中的等价物是什么?

1 个答案:

答案 0 :(得分:6)

在你的表格中,你会做这样的事情。

<%= form_for [@customer, @platform] do |form| %>
    ...
<% end %>

使用new.html.erb或等效new方法:

<%= render 'form', customer: @customer %>

在您的新控制器方法中(取决于您的关系)

def new
  @customer = @platform.customers.build
end

使用form_with

<%= form_with(model: [:customer, @platform]) do |form| %>
  ...
<% end %>

http://api.rubyonrails.org/v5.1/classes/ActionView/Helpers/FormHelper.html#method-i-form_with