使用form_for标记内的局部渲染部分

时间:2015-11-18 14:36:08

标签: ruby-on-rails

我有这个表格(简化)

<%= form_for @client do |client| %>
 <%= render "some_partial", foo: 10, bar: 20 %>
<% end %>

我也尝试使用:<%= render :partial => "some_partial", :locals => {foo: 10, bar: 20} %>

some_partial

<%= foo %>
<%= bar %>

但是,部分变量不可用:

undefined local variable or method `foo' for #<#<Class:0x007fb35027bbd0>:0x007fb350536e60>

如果我将render放在form_tag的一边,那就可以了。

提前致谢

UPDATE1 :在表单的最后,我有这个:

<%= link_to_add_association 'Add', client, :client_addresses, class: "ui mini green button add_client_address" %>

如果我删除此部分,工作正常...

2 个答案:

答案 0 :(得分:0)

你必须像本地人一样提到参数。

<%= render :partial => "some_partial", :locals => {foo: 10, bar: 20} %>

答案 1 :(得分:0)

您尝试使用LoopCounterVariable加载的"some_partial"是否与:client_addresses相同?

我相信您遇到的错误消息来自link_to_add_association

似乎您正在使用Cocoon gem。为了将本地人传递到Cocoon使用的部分内容(在您的情况下为link_to_add_association),您需要为:client_addresses

传递参数render_options: { locals: {foo: bar}