Rails中的别名方法3

时间:2010-11-01 00:26:02

标签: ruby-on-rails ruby devise

我正在使用Devise进行身份验证,但我使用的是两个用户模型,即买方和卖方。

默认情况下,Devise会生成两个方法,例如current_buyer和current_seller。

我想清理我的代码,在ApplicationController的before_filter中,我想将相应的方法别名为current_user。

在Rails 3中执行此操作的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

通过拥有两个用户模型,您可能会使设计变得更加复杂。您可能需要考虑使用一个用户模型进行身份验证。然后,如果需要,您可以为买方和卖方设置角色。

但是如果你真的只想在ApplicationController中为方法添加别名,那么你可以这样做:

  private
  alias :current_user :current_seller

或者,如果你需要更动态的东西,你可以使用一种方法。

答案 1 :(得分:1)

我同意balexand你应该有一个登录模型,并按角色分开。

但这取决于你,并且有办法通过使用方法来实现:

def current_user
  current_seller || current_buyer
end

这将返回sellerbuyernil