2015-11-04 32 views
1

我有查看事件#show。在這個視圖中,用戶可以選擇多少人加入事件並選擇該術語。然後他可以點擊「購買」,將其重定向到交易#新。在這裏我想預先填寫這兩個值。紅寶石軌道 - 將變量傳遞到前一視圖的「新」動作

什麼是最好的方式來做到這一點?我應該在哪裏存儲這些變量?

我在想:

<%= link_to new_transaction_path({ ..... }) 

...但我不知道如何將值傳遞到的link_to參數。下面是如何讓用戶自己選擇的人計數:

<%= f.select(:seleced_seats, @event.seats, {}, { :class => 'form-control' }) %> 
+0

我應該在會話中存儲數據嗎?此時該對象不會被創建。 – mirap

+0

爲什麼不直接在EventsController中重定向到'new_transaction_path'? – nayiaw

+0

沒理由。但我沒有看到它的任何好處/解決方案。 – mirap

回答

1

我有鑑於賽事節目。在此視圖中,用戶可以選擇多少人 將加入事件並選擇該術語。然後他可以點擊「購買」 ,這會將他重定向到交易#新。

所以,你可以從這裏用戶可以選擇有多少人能加入,使形式方面:

<%= form_tag("/transaction", method: "get") do %> 
    <%= label_tag(:people, "How Many People:") %> 
    <%= text_field_tag(:people) %> 
    <%= options_for_select([['terms 1', 1], ['terms 2', 2], ...]) %> 
    <%= submit_tag("Purchase") %> 
<% end %> 

所以你得到像params[:people]可以/transaction?people=3 現在一個GET或POST請求訪問您的下一個表單,如下所示:

<%= form_tag("/transaction", method: "post") do %> 
    <%= label_tag(:people, "How Many People:") %> 
    <%= text_field_tag :people, params[:people], disabled: true %> 
    ... 

    <%= submit_tag("Submit") %> 
<% end %>