首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用link_to,以便在Rails 2中保留传递给控制器的所有参数?

如何使用link_to,以便在Rails 2中保留传递给控制器的所有参数?
EN

Stack Overflow用户
提问于 2011-02-16 22:12:33
回答 1查看 1.3K关注 0票数 2

我有一个双语网站与良好的网址为SEO。使用2.3.10。

routes.rb片段:

代码语言:javascript
复制
map.connect 'order-jira-hosting/:option.html',
    :controller => 'order', :action => 'index', :locale => 'en'
map.connect 'order-jira-with-greenhopper-hosting/:option.html',
    :controller => 'order', :action => 'index', :locale => 'en', :greenhopper => true
map.connect 'zamow-hosting-jira/:option.html',
    :controller => 'order', :action => 'index', :locale => 'pl'
map.connect 'zamow-hosting-jira-z-greenhopper/:option.html',
    :controller => 'order', :action => 'index', :locale => 'pl', :greenhopper => true

如您所见,:locale:greenhopper在URL中“隐藏”。

有一个开关,以便您可以更改当前页的语言。见我的views/layouts/default.erb

代码语言:javascript
复制
<%= link_to image_tag('icons/polish.png',  :alt => 'polski'),  { :locale => 'pl'}, :class => 'a' %>
<%= link_to image_tag('icons/english.png', :alt => 'English'), { :locale => 'en'}, :class => 'a' %>

我只是不指定控制器和操作,这样就可以重定向到具有不同区域设置的当前控制器和操作。不幸的是,温室参数丢失了。

  1. 我在/order-jira-with-greenhopper-hosting/11.html

用于交换语言的(:option => 11, :locale => 'en', :greenhopper => true)

  • Generated链接是/order-jira-hosting/11.html/zamow-hosting-jira/11.html

(:option => 11, :locale => 'pl' and 'en', :greenhopper => false)...

  • ...But他们应该是/order-jira-with-greenhopper-hosting/11.html/zamow-hosting-jira-z-greenhopper/11.html

(:option => 11, :locale => 'pl' and 'en', :greenhopper => true)

如何使用link_to方法来保存传递给控制器的所有参数?谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-16 22:39:22

您可以将发送给link_to的散列建立在params散列的基础上,如果您按原样将其传递给link_to,将重新加载当前页面。您可以使用Hash.merge(other_hash)重置每个链接的:locale键:

代码语言:javascript
复制
<%= link_to '<polish image />', params.merge({:locale => 'pl'}), :class => 'a' %>

现在,params确实包含控制器和操作键,但是它们是生成当前页面的控制器和操作,所以链接的行为应该像页面刷新一样,只有通过params.merge更改的参数才会发生变化。

希望这能有所帮助!

PS:params.merge不会更改params散列,如果您对此表示关注--合并的结果将作为新的哈希返回。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5022784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档