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