我想通过查询添加一个语言修饰符,添加"?lang = xx"到当前网址。
我目前正在使用以下内容:
=link_to request.request_parameters.slice(:lang).merge(lang: 'en')
这很好,除了它添加" welcome / index"或者当我使用自定义路线时的相应路线,这对于分享链接并不好。
我也试过这个:
=link_to "#{request.path}/?lang=en"
简单,它有效,但不允许我删除不需要的参数。
我在某个地方看到其中一个应该不包括" welcome / index",我已经尝试request.query_parameters
和request.request_parameters
,两者都包括'欢迎/索引'当我在我的网站上做某事的时候。
我可以在自定义路线中添加条件并删除控制器和操作,但我认为这是不必要的工作。
如果没有过度设计解决方案,是否有一种干净的方法可以做到这一点?
我目前正在使用Rails 4.2.5并考虑升级到5.0。
答案 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')
我知道它的两行,我只是讨厌添加更多的代码而不是它似乎是必要的。