更新到rails 3后,authlogic不起作用,所以我使用gem'authlogic',:git => 'git://github.com/odorcicd/authlogic.git',: branch => 'rails3'
这适用于标准设置,但我有一个多帐户设置,我之前使用with_scope,因此用户只能登录到他们的帐户/子域而不是任何帐户/子域。
我的应用程序控制器中的代码以前工作但现在不是使用旧的find而不是新的arel语法。
def current_user_session
return @current_user_session if defined?(@current_user_session)
UserSession.with_scope(:account_id => account_id) do
@current_user_session = UserSession.find
end
end
有没有设法为rails 3更新此内容或找到修复程序?
请帮忙!
祝你好运 理查德
答案 0 :(得分:1)
您使用的是authenticates_many
吗?我刚才遇到了类似的问题(我的模型标识了帐户/子域名为Website
,我有一个设置@website
的前置过滤器。为了解决这个问题,我做了以下几点:
我将:find_options => { :limit => 1 }
添加到authenticates_many
class Website < ActiveRecord::Base
authenticates_many :user_sessions, :find_options => { :limit => 1 }
我的用户模型通常为validations_scope
:
acts_as_authentic do |c|
c.validations_scope = :website_id
end
我的current_user_session
方法变成了以下内容:
def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = @website.user_sessions.find
end
希望它有所帮助。