我无法像我期望的那样访问控制器参数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"}
感谢您的帮助!
答案 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