将哈希值存储在url中

时间:2016-06-05 07:33:47

标签: ruby-on-rails ruby

Rails 5.0.0.rc1
Ruby 2.2.5 (can update to latest)

我想认为这是可能的。我发出get请求,当选择某个字段时,用户按下下一个按钮,它会转到另一个页面,该页面的网址如下所示:

http://localhost:3000/food/r/new?utf8=%E2%9C%93&id=2&food=Apple&commit=Next

对我来说,这看起来很难看。看起来像这样更好:

http://localhost:3000/food/r/new/<some_random_short_string/<name-of-page>

我想象some_random_short_string将是一个哈希,然后在控制器中会有类似的东西:

hash = params[:some_random_short_string]
hash[:food] #=> "Apple"
etc...

不知道如何解决这个问题。有什么指示吗?

1 个答案:

答案 0 :(得分:1)

我会回答它,而不是删除我的问题,因为有一天我会回来。

&#39;获得&#39;公开网址中的数据,所以我去了post。不需要哈希只需使用params来存储值。

提交页面后,网址将如下所示:http://localhost:3000/food/r/new。在控制器中,您使用params:

@selected_food = params[:food]

<强> new.html.erb:

<%= @selected_food %> #=> Apple