2016-07-14 22 views
0

我有一個text_field_tag,我想傳遞給控制器​​的值。傳遞text_field_tag到控制器的Rails的值

<%= text_field_tag 'amount', 'Enter amount' %> 

我有一個link_to標籤已經傳遞了其他參數,我也想將這個文本框的值傳遞給我的控制器動作。

<%= link_to "Do it", do_it_path(id: some.id, detail: card.summary) %> 

任何人都可以請建議一些方法,通過這可以實現?我想避免使用表單,因爲它只有一個字段,我希望保持簡單。

+0

爲什麼你不使用表格?表單是實際執行此操作最簡單的方法!否則,我會建議'onclick'處理程序,僞表單和不必要的Javascript。使用表格,您的最終用戶會對此感恩。 – sjagr

+0

我很欣賞你的建議。但是我開始使用Rails,所以我想知道有沒有其他辦法可以做到這一點。 –

+0

Rails使用表單。 – sjagr

回答

2

由於您的text_field_tag輸入是在DOM加載後,您可能希望使用JavaScript將text_field_tag的值附加到鏈接點擊事件。以下使用jQuery:

<%= text_field_tag "amount", "Enter amount", class: "amount_field" %> 

<%= link_to "Do it", do_it_path(id: some.id, detail: card.summary), class: "do_it_link" %> 

<script> 
    $(".do_it_link").click(function() { 
    $(this).attr("href", function() { 
     return this.href + "&amount=" + $('.amount_field').val(); 
    }); 
    }); 
</script> 

但是你真的應該使用一個表單。它更簡單,更安全。

<%= form_for @something do |f| %> 
    <%= f.text_field :amount, placeholder: "Enter amount" %> 
    <%= f.hidden_field :detail, value: card.summary %> 
    <%= f.submit "Do it" %> 
<% end %> 
+0

從兩種方法中學習。雖然我正在尋找一種JavaScript方式,但我最終使用了form_tag。 –