导轨传递的form_for目的是局部(Rails passing form_for object t

2019-06-27 17:51发布

我想的传递form_for对象的部分:

<%= form_for @price do |f| %>
   ...
   <%= render :partial => "price_page", :object => @price, :as => :f %>
   ...
<% end %>

当我打电话:

f.radio_button

带来的错误:

undefined method `radio_button' for #<Price:0x3cb1ed0>

如何使用f因为我通常会在这个部分?

Answer 1:

尝试传递形式对象作为本地<%= render :partial => "price_page", :locals=>{:f=>f} %>



Answer 2:

你可以通过表单生成器对象作为一个局部变量如下图所示,

<%= form_for @price do |f| %>
     <%= render :partial => "price_page", :locals => { :f => f } %>
<% end %>

在你的部分文件,你将收到表单生成器作为一个局部变量“F”,你可以使用如下,

  <% f.radio_button, {} %>


Answer 3:

我碰到这个问题跑,试图找出如何让一个表单生成器到部分不需要额外的表单标签。 这是主要的用例,我能想到的对这个问题,所以我加入这个答案对未来的访客。

为了解决我的问题,我有我的form_for在我的布局,我使我的部分,只透过模型。 在我的部分我用fields_for 。

长相(东西)是这样的:

= form_for @price do |f|
   ...
   = render partial: "price_page", object: @price, as: 'price %>
   ...

然后,我偏有这样的:

= fields_for price do |f|
   ...


文章来源: Rails passing form_for object to partial