Rails请求覆盖参数

时间:2012-11-16 04:38:37

标签: ruby-on-rails ruby-on-rails-3 rack

我需要在整个应用程序中从params[:lang]覆盖enus-english。从网址开始,它应该是en,但在我的整个应用程序中,它必须是us-english,然后当我创建网址时,我需要再次从us-english转换为en

我意识到实际的解决方案是更新网址以反映实际的应用程序,但这个决定是我无法控制的。

1 个答案:

答案 0 :(得分:2)

在应用程序控制器中:

before_filter :override_params


def override_params
  params[:lang] = 'us' if params[:lang] == 'en'
end


def render( *args )
  params[:lang] = 'en' if params[:lang] == 'us'
  super
 end

虽然正如安德鲁评论的那样,可能有更好的方法来实现你想要实现的目标,