使用Ruby on Rails在静态表单之间传递变量

时间:2014-11-13 03:05:36

标签: ruby-on-rails ruby ruby-on-rails-3

我是Ruby的新手,但有一些编程经验。我试图找出如何使用POST将表单(SEARCH)中收集的变量传递给其控制器(API),然后将其输出到同一个控制器中的另一个视图(RESULT)。

我知道变量使它成为API控制器,因为它显示在服务器日志中。但我无法弄清楚为什么它不会从那里作为实例变量传递到Result.html.erb页面。

的routes.rb

Remixr::Application.routes.draw do
  get "api/search"
  post "api/result"
end

search.html.erb

<form action = "result" method="post">
    Zip Code: <input type = "text" size = "5" name = "zip_code" />
Search Range: <input type = "text" size = "3" name = "range" />    
              <input type = "submit" value="Search" />
              <input type = "reset" value="Reset Form" />
</form>

result.html.erb

Zipcode = <%= @zip_code %>
 Radius = <%= @range %>

api_controller.rb

def search
  end

  def result
    @zip_code = zip_code
    @range = range
  end   
end

我知道这里有一些基本的东西,但我找不到任何人在一个视图中显示一个表单,将表单内容发布到自己的控制器以使用该控制器中的另一个方法然后输出变量该方法到同一个控制器下的另一个视图。我删除了许多正在进行的其他处理,直到我确信我可以按照我设计的方式传递变量。

1 个答案:

答案 0 :(得分:0)

在控制器中,使用:

def result
  @zip_code = params[:zip_code] 
  @range = params[:range]
end