设计:我如何让default_url_options作为实例方法工作

时间:2015-11-03 11:04:07

标签: ruby-on-rails ruby-on-rails-4 devise

我有一个应用程序,它将default_url_options中的一些东西设置为实例方法。

def default_url_options(options={})
  added_options = { locale: I18n.locale }
  added_options[:root] = params[:root].present? ? params[:root] : nil
  options.merge(added_options)
end
然而,

设计仅适用于设置为类方法的default_url_options。正如你所看到的,我必须访问参数并且不能作为类方法使用。

https://github.com/plataformatec/devise/wiki/How-To:--Redirect-with-locale-after-authentication-failure

任何想法如何解决这个问题?提前谢谢!

1 个答案:

答案 0 :(得分:0)

我正在使用路线黑客来使其正常工作......

get "/users/sign_in" => redirect("/en/users/sign_in")

在路线中选择:locale。 这样我可以使用default_url_options作为实例方法。