2013-10-18 112 views
0

我是相當新的都Ruby和Rails,但我已經成功地創建一個控制器和視圖創建Rails應用程序中新的「組織」記載:Rails的按鈕生成UUID

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

讓你的控制器方法的輔助方法,通過執行以下操作

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> 
+0

謝謝,我想我更近了一步。請參閱我上面的編輯。 – user2815613

+0

使它成爲一個鏈接而不是一個按鈕。我認爲你必須在點擊鏈接時發出ajax請求,並用ajax響應填充輸入字段 – usha