Rails按钮生成UUID

时间:2013-10-18 12:55:12

标签: ruby-on-rails ruby uuid

我对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.submit按钮允许。有什么想法吗?

1 个答案:

答案 0 :(得分: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>