Rails:在视图中修改URL并使用该新值刷新

时间:2012-03-21 18:17:12

标签: ruby-on-rails params page-refresh

我正在处理这种风格的网址:

http://mysite/tables/134/X/Y
http://mysite/tables/134/X/Z

数字134在相关控制器中被识别为:table_id 。我希望能够(从视图中)更改:table_id 并调用相同的URL。所以,像:

http://mysite/tables/135/X/Y

我试过这样做:

<%= collection_select("params", :table_id, @tables , :id, :id, {:prompt => true}, :onchange => "location.href = ''") %>

但是我在控制器中得到的params [:table_id]它仍然是我在URL中的旧版本。所以我的问题是:

我是否需要自己构建网址?我不能更改params [:table_id]并重新加载相同的网址吗?

1 个答案:

答案 0 :(得分:1)

简短回答:是的,您需要构建URL。

原因:变量params[:table_id]来自网址。我确定您已经看到http://www.foo.com/?var=baz形式的网站网址。如果你在Rails中这样做,它会将params [:var]设置为baz。这基本上就是table_id所发生的事情。

REST的基本原则是HTTP事务是无状态的。 (Cookie和会话存储是一个例外,但这与此无关。)