将变量发布到另一个控制器

时间:2014-07-07 17:23:15

标签: ruby-on-rails ruby

我有一个欢迎控制器/视图。

在index.html.erb上我有一个简单的表单,它接受一个值:

<%= form_tag do %>
<div>
<%= label_tag(:zip, "Enter Zipcode to search in:") %>
  <%= text_field_tag(:zip) %>
 </div>
  <%= submit_tag("Search") %>
<% end %>

点击提交按钮后,我想将zip变量传递给另一个名为“theatres”的控制器。变量不需要保存在任何类型的模型中,它只是用于在Theatres控制器中执行API调用。

最简单的方法是什么?

由于

2 个答案:

答案 0 :(得分:2)

试试这个:

<%= form_tag({controller: "theaters", action: "index"}) do %>
<div>
    <%= label_tag(:zip, "Enter Zipcode to search in:") %>
    <%= text_field_tag(:zip) %>
</div>
<%= submit_tag("Search") %>
<% end %>

希望它有所帮助。

答案 1 :(得分:0)

在TheatresController中为你的方法创建一个路由,假设你的方法名是get_zip

post '/get_zip' => 'theaters#get_zip', as: "zip"

创建表单

<%= form_tag(url: zip_path, method: :post) do %>
  <div>
    <%= label_tag(:zip, "Enter Zipcode to search in:") %>
    <%= text_field_tag(:zip) %>
  </div>
  <%= submit_tag("Search") %>
<% end %>

在您的方法中访问它:

def get_zip
  @zip = params[:zip]
  #your logic
end