我的网址如下:Evaulating网址参数,没有返回预期的结果
http://localhost:3000/movies?ratings[PG-13]=1&commit=Refresh
我尝试评估网址参数和我不能确定为什么这种工作方式是一样。在我的控制器我评价参数和如下建立一个数组:
在我View
我用下面的调试语句,看看有什么被放入@selected_ratings
=debug(@selected_ratings)
在我的控制器中我已经试过两种说法。
测试一返回以下,这应该工作?
@selected_ratings = (params["ratings[PG-13]"].present? ? params["ratings[PG-13]"] : "notworking")
output: notworking
但是如果我使用下面的三元评价ñ我的控制器:
@selected_ratings = (params["ratings"].present? ? params["ratings"] : "notworking")
output:!map:ActiveSupport::HashWithIndifferentAccess
PG-13: "1"
为什么我的评价找不到文字params["ratings[PG-13]"]
?
所以我应该做'params [“ratings”]。has_key(“PG-13”)'?坚韧,如何搜索散列,当值是另一个散列...... – ProfessionalAmateur
你不能只测试'params [“ratings”] [“PG-13”]'?在这种情况下,它将返回一个“1”,作为布尔值将为true。如果密钥不存在,它将返回'nil'。你也许应该添加一个检查“params [”rating“]'不是零。 –
啊我不知道我可以这么做,'params [“rating”] [“PG-13”]'。我是全新的rails/ruby ...我将不得不更多地使用它。谢谢您的帮助。 – ProfessionalAmateur