2012-02-08 145 views
3

目前,我使用下面的代碼傳遞PARAMS [:編號],以line_items創建用rails button_to helper生成隱藏的表單域數據?

<%= button_to 'Add to Cart', { controller: 'line_items', action: 'create', id: brick }, class: 'green radius nice button', method: :post, remote: true %> 

然而,將追加在URL查詢ID PARAM這是我沒有想button_to做。我想要的是通過隱藏表單字段傳遞ID參數。我可以在button_to中做到這一點,或解決此問題的任何解決方法?

回答

0

我已經做了我的項目的模塊中類似的東西:

首先,我增加了一個形式的隱藏字段:

<%= form_tag({:action => 'my_action'}, :id=>"item_form", :method => :post, :remote=>true) do%> 
    <%= hidden_field_tag :item_id, 0%> 
<% end %> 

列表上的所有MI項目將有一個check_box_tag至極包含項目編號:

<%= check_box_tag "item_ids", item.id, false,:id => item.id, :class => "my_fancy_class"%> 

當一個項目被挑選正好趕上的情況下,對hidden_​​field替代的價值和觸發形式:

function(event, ui) { 
     $("#item_id").attr('value',ui.selected.id); 
     $('form#item_form').submit(); 
     } 

如果你想渲染的東西只是添加一個action.js.erb文件到你的控制器視圖文件夾,但多數民衆贊成在另一件事。

5

從Rails 4.1.0開始,button_to現在有附加選項:params它可以接收將被轉換爲隱藏字段的散列。例如:

button_to 'Send Invitation', invitation_path(user), params: {'user[email]' => user.email} 

會給:

<form action="https://stackoverflow.com/users/invitation" class="button_to" method="post"> 
    <div> 
     <input type="submit" value="Resend"> 
     <input name="user[email]" type="hidden" value="[email protected]"> 
    </div> 
</form>