【问题标题】:form_for - generate unique idsform_for - 生成唯一 ID
【发布时间】:2015-01-20 15:19:16
【问题描述】:

我试图弄清楚如何为页面上出现的每个表单分配一个唯一的 id,例如,假设我的页面上有 5 个 form_for,每个表单都将具有相同的 id(这是一个表单创建一个新对象)

<%= form_for @document || Document.new, :html => { multipart: true, class: 'upload_document' } do |f| %>

如果我正在编辑多个对象,那么我可以获取 @document 的 id,但我没有任何东西可以获取

我知道我也可以使用命名空间,但这只会生成具有相同命名空间的相同 ID。除非我可以增加命名空间的值?

请问最好的解决方法是什么

谢谢

【问题讨论】:

  • 新建对象的object_id呢?
  • 您的意思是@document 何时初始化?然后它被分配一个 id ?

标签: ruby-on-rails ruby ruby-on-rails-4 form-for


【解决方案1】:

你可以使用Object#object_id:

... 返回 obj 的整数标识符。相同的号码将是 对给定对象的所有 id 调用都返回,并且 没有两个活动的 对象将共享一个 id

<% object = @document || Document.new %>
<%= form_for object, :html => { multipart: true, id: object.object_id.to_s } do |f| %>

这很难为每个form_for 声明自己的object,我建议创建包含 5 个对象的数组并遍历它。

【讨论】:

  • 非常感谢,今天又学到了一些东西
猜你喜欢
  • 2012-02-22
  • 1970-01-01
  • 2015-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 2011-06-20
相关资源
最近更新 更多