【问题标题】:Rails fields_for enumerate with idRails fields_for 用 id 枚举
【发布时间】:2014-07-27 00:14:31
【问题描述】:

如果我有一个标准的fields_for 方法,例如:

<%= f.fields_for :exptypes do |builder| %>
    <%= render 'exptype_fields', :f => builder %>
<% end %>

有没有这样的获取方式:

<%= f.fields_for :exptypes do |builder, i| %>
    <%= render 'exptype_fields', :f => builder, :i => i %>
<% end %>

所以一个唯一的数字(i)被传递给表单?

我想做的是在部分内部创建唯一的div 标签,这样我就可以在代码中的特定部分上运行 javascript。

【问题讨论】:

    标签: javascript ruby-on-rails fields-for


    【解决方案1】:

    你很幸运——Rails 已经自动完成了这项工作。来自http://guides.rubyonrails.org/layouts_and_rendering.html下3.4.6局部变量

    Rails 还在一个名为的部分中提供了一个计数器变量 由集合,以集合成员的名字命名 由_counter。例如,如果您正在渲染 @products,则在 部分你可以参考product_counter告诉你多少次 部分已呈现。这不能与 as: :value 选项。

    在你的情况下,这可能是exptype_fields_counter

    【讨论】:

    • 感谢布拉德。但是,我找不到正确的本地方法名称。我试过:exptype_fields_counter、exptypes_fields_counter、exptype_counter、exptypes_counter;无济于事。有没有办法预测变量的名称?
    • 实际对象的类是什么?
    • 这也不起作用:( exptype 是模型本身,因此部分只是以它命名。我注意到它在:collection 中使用的计数器引用的其他提及,因为我没有使用:collection 而是一个循环,是否可能没有创建计数器?
    • 很好,调整语法应该很容易,并将 fields_for 移动到部分...我真的想不出更清洁的方法,抱歉。
    • 你可以使用object.id吗?它将确保持续的针对性和独特性......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    相关资源
    最近更新 更多