我正在处理这种风格的网址:
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]并重新加载相同的网址吗?
答案 0 :(得分:1)
简短回答:是的,您需要构建URL。
原因:变量params[:table_id]
来自网址。我确定您已经看到http://www.foo.com/?var=baz
形式的网站网址。如果你在Rails中这样做,它会将params [:var]设置为baz。这基本上就是table_id所发生的事情。
REST的基本原则是HTTP事务是无状态的。 (Cookie和会话存储是一个例外,但这与此无关。)