form_for - 生成唯一 ID
form_for - generate unique ids
我想弄清楚如何为出现在我页面上的每个表单分配一个唯一的 ID,例如假设我的页面上有 5 个 form_for,每个表单都将具有相同的id(这是创建新对象的形式)
<%= form_for @document || Document.new, :html => { multipart: true, class: 'upload_document' } do |f| %>
如果我正在编辑多个对象,那么我可以获取 @document 的 ID,但我没有任何东西可以获取
我知道我也可以使用命名空间,但同样这只会生成具有相同命名空间的相同 ID。除非我可以增加命名空间的值?
请问解决这个问题的最佳方法是什么
谢谢
您可以使用 Object#object_id
:
... Returns an integer identifier for obj. The same number will be
returned on all calls to id for a given object, and no two active
objects will share an id.
<% object = @document || Document.new %>
<%= form_for object, :html => { multipart: true, id: object.object_id.to_s } do |f| %>
这可能很难为每个 form_for
声明自己的 object
,我建议创建包含 5 个对象的数组并遍历它。
我想弄清楚如何为出现在我页面上的每个表单分配一个唯一的 ID,例如假设我的页面上有 5 个 form_for,每个表单都将具有相同的id(这是创建新对象的形式)
<%= form_for @document || Document.new, :html => { multipart: true, class: 'upload_document' } do |f| %>
如果我正在编辑多个对象,那么我可以获取 @document 的 ID,但我没有任何东西可以获取
我知道我也可以使用命名空间,但同样这只会生成具有相同命名空间的相同 ID。除非我可以增加命名空间的值?
请问解决这个问题的最佳方法是什么
谢谢
您可以使用 Object#object_id
:
... Returns an integer identifier for obj. The same number will be returned on all calls to id for a given object, and no two active objects will share an id.
<% object = @document || Document.new %>
<%= form_for object, :html => { multipart: true, id: object.object_id.to_s } do |f| %>
这可能很难为每个 form_for
声明自己的 object
,我建议创建包含 5 个对象的数组并遍历它。