如何将参数添加到当前URL?

时间:2016-07-14 02:34:44

标签: ruby-on-rails-4

我想通过查询添加一个语言修饰符,添加"?lang = xx"到当前网址。

我目前正在使用以下内容:

=link_to request.request_parameters.slice(:lang).merge(lang: 'en')

这很好,除了它添加" welcome / index"或者当我使用自定义路线时的相应路线,这对于分享链接并不好。

我也试过这个:

=link_to "#{request.path}/?lang=en"

简单,它有效,但不允许我删除不需要的参数。

我在某个地方看到其中一个应该不包括" welcome / index",我已经尝试request.query_parametersrequest.request_parameters,两者都包括'欢迎/索引'当我在我的网站上做某事的时候。

我可以在自定义路线中添加条件并删除控制器和操作,但我认为这是不必要的工作。

如果没有过度设计解决方案,是否有一种干净的方法可以做到这一点?

我目前正在使用Rails 4.2.5并考虑升级到5.0。

1 个答案:

答案 0 :(得分:0)

猜猜我不得不过度工程。这是我能想到的最简单的实现:

超薄:

=link_to_if request.path == '/', 'Home', root_path(lang: :en) do
   =link_to 'Not Home', request.request_parameters.slice(:lang).merge(lang: 'en')

我知道它的两行,我只是讨厌添加更多的代码而不是它似乎是必要的。