Ruby on rails - 将变量传递给" new"以前观点的行动

时间:2015-11-04 14:35:46

标签: ruby-on-rails ajax ruby-on-rails-4

我查看了Event#show。在此视图中,用户可以选择加入活动的人数并选择该术语。然后他可以点击"购买"这会将他重定向到Transaction#new。在这里,我想预先填写这两个值。

最好的方法是什么?我应该在哪里存储这些变量?

我在想:

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

...但我不知道如何将值传递给link_to参数。以下是我如何让用户选择人数:

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

1 个答案:

答案 0 :(得分:1)

  

我查看了Event#show。在此视图中,用户可以选择多少人   将加入活动并选择期限。然后他可以点击“购买”   这会将他重定向到Transaction#new。

因此,您可以创建一个表单,用户可以从中选择可以加入的人数和条款:

<%= 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 %>

因此,您收到了/transaction?people=3之类的获取或发布请求 现在从params[:people],您可以访问下一个表单的信息,如下所示:

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

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