0

我对 ruby​​ 和 rails 都很陌生,但我设法创建了一个控制器和视图,以便在 rails 应用程序中创建一个新的“组织”记录:

class OrganizationsController < ApplicationController

我还有创建新组织的表单,并在表单中包含一个按钮来为记录生成 UUID:

 <button class="btn btn-small" type="button" title="Generate UUID">
 Generate UUID
 </button>

按下时,我希望此按钮生成一个 UUID,将 UUID 放在同一表单中的现有字段中:

 <div class="field">
 <%= f.label :uuid %><br>
 <%= f.text_field :uuid %>
 </div>

我想出了一种使用 JS 的方法,但宁愿在我的控制器类中的方法中使用 SecureRandom.UUID。这怎么可能?或者有没有更好的地方放这个方法?

编辑:

谢谢,所以现在我有以下方法:

 helper_method :generate_uuid
 def generate_uuid
    puts SecureRandom.uuid
 end

表格有以下内容:

  <%= button_to "Generate UUID", :method=> "generate_uuid" %>


  <div class="field">
    <%= f.label :uuid %><br>
    <%= f.text_field :uuid,  :value => generate_uuid %>
  </div>

  <div class="actions">
    <%= f.submit %>
  </div>

该按钮仍然不会生成和填充该字段,此外,generate_uuid 按钮提交实际表单,而此方法应仅由 f.s​​ubmit 按钮允许。有任何想法吗?

4

1 回答 1

1

通过执行以下操作使您的控制器方法成为辅助方法

class SomeController < ApplicationController
  helper_method :generate_uuid

  def generate_uuid
  end
end

您现在可以在视图中使用此方法

<div class="field">
 <%= f.label :uuid %><br>
 <%= f.text_field :uuid, "", :value => generate_uuid %>
</div>
于 2013-10-18T13:24:26.207 回答