Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 如何设置url helper方法参数的默认值?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用语言代码作为前缀,例如www.mydomain.com/en/posts/1.
这是我在routes.rb中所做的:
scope ":lang" do
  resources :posts
end

现在我可以轻松使用url助手,例如:post_path(post.id,:lang =>:en).问题是我想在cookie中使用一个值作为默认语言.所以我只能写post_path(post.id).

有没有办法如何在url Helpers中设置参数的默认值?我找不到网址助手的源代码 – 有人能指出我正确的方向吗?

另一种方式:我已经尝试在routes.rb中设置它,但它仅在启动时评估,这对我不起作用:

scope ":lang",:defaults => { :lang => lambda { "en" } } do
  resources :posts
end

解决方法@H_696_15@
这是我头脑中的编码,所以不能保证,但在初始化器中尝试一下: @H_456_3@module MyRoutIngstuff alias :original_url_for :url_for def url_for(options = {}) options[:lang] = :en unless options[:lang] # @R_450_10112@ever code you want to set your default original_url_for end end ActionDispatch::routIng::UrlFor.send(:include,MyRoutIngstuff)

或直的猴子补丁……

@H_456_3@module ActionDispatch module RoutIng module UrlFor alias :original_url_for :url_for def url_for(options = {}) options[:lang] = :en unless options[:lang] # @R_450_10112@ever code you want to set your default original_url_for end end end end

url_for的代码位于Rails 3.0.7中的actionpack / lib / routIng / url_for.rb中

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – 如何设置url helper方法参数的默认值?全部内容,希望文章能够帮你解决ruby-on-rails – 如何设置url helper方法参数的默认值?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。