在我看来,我有2个我需要创建的URL。每种类型都有单独的排序值,但必须包含以前的所有评级设置。从params散列构造2个不同的URL,1覆盖另一个
为了创建这个URL,在控制器上,作为最后一步,我弄脏与params哈希表:
params.delete :controller
params.delete :action
params.delete :commit
params.delete :utf8
params[:ratings] = @ratings
@titleparams = params
@dateparams = params
@dateparams[:sort] = "release_date"
@titleparams[:sort] = "title"
我希望@titleparams和@dateparams是则params的单独副本。然后我为每个添加排序参数。
的视图显示他们具有相同的代码,但在不同的THS为:
%a#release_date_header= link_to "Release Date", movies_path(@dateparams)
%a#title_header= link_to "Movie Title", movies_path(@titleparams)
我也有在页面顶部的部分,看看有什么@dateparams和@titleparams是来页以查看。他们是一样的,我不明白为什么。
%hr
[email protected]
%hr
[email protected]
%hr
显示为(这个职位忽略小时)
{"ratings"=>{"G"=>"1", "PG"=>"1"}, "sort"=>"title"}
{"ratings"=>{"G"=>"1", "PG"=>"1"}, "sort"=>"title"}
这似乎是添加的最后一个排序是门将。即,标题是控制器操作代码中添加的最后一种,因此它是两个不同参数列表中的最后一个。
我不明白为什么params复制到两个不同的变量是像通过引用传递,而不是通过值传递。我是Ruby新手,但在Ruby工作中我没有看到过。
谢谢。这帮了很多。 – DFBerry 2012-03-09 14:52:22