Rails控制器参数哈希

时间:2014-05-15 06:11:47

标签: ruby-on-rails ruby

我无法像我期望的那样访问控制器参数hash。我知道它是HashWithIndifferentAccess,但无论我尝试过什么,我都会遇到此错误wrong number of arguments (1 for 0)

这是控制器方法:

def cuisine
   @selection = params("name")  // or params(:name)
end

这是routes.rb

get '/cuisine/:name', to: 'main#cuisine'

我在params本身(@selection)的视图中得到的是哈希..

{"controller"=>"main", "action"=>"cuisine", "name"=>"american"}


感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

写为

 @selection = params["name"] # or @selection = params[:name]

params("name")是使用一个参数进行params方法调用,而不是Hash#[]方法调用。您需要使用Hash#[]

答案 1 :(得分:0)

你应该使用方括号:

def cuisine
   @selection = params["name"]  # or params[:name]
end