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.submit ボタンでのみ許可されるべきです。何か案は?

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 に答える