form_for - 生成唯一ID

时间:2015-01-20 15:19:16

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

我想弄清楚如何为我页面上显示的每个表单分配一个唯一的ID,例如假设我的页面上有5个form_for,每个表单将具有相同的ID(这是一个表单)创建一个新对象)

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

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

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

请问最好的方法是什么

由于

1 个答案:

答案 0 :(得分:2)

您可以使用Object#object_id

  

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

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

这可能很难为每个object声明自己的form_for,我建议使用5个对象创建数组并迭代它。