我想的传递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
因为我通常会在这个部分?
尝试传递形式对象作为本地<%= render :partial => "price_page", :locals=>{:f=>f} %>
你可以通过表单生成器对象作为一个局部变量如下图所示,
<%= form_for @price do |f| %>
<%= render :partial => "price_page", :locals => { :f => f } %>
<% end %>
在你的部分文件,你将收到表单生成器作为一个局部变量“F”,你可以使用如下,
<% f.radio_button, {} %>
我碰到这个问题跑,试图找出如何让一个表单生成器到部分不需要额外的表单标签。 这是主要的用例,我能想到的对这个问题,所以我加入这个答案对未来的访客。
为了解决我的问题,我有我的form_for在我的布局,我使我的部分,只透过模型。 在我的部分我用fields_for 。
长相(东西)是这样的:
= form_for @price do |f|
...
= render partial: "price_page", object: @price, as: 'price %>
...
然后,我偏有这样的:
= fields_for price do |f|
...