gpt4 book ai didi

ruby-on-rails - authlogic with_scope 不适用于 Rails 3 的多帐户应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 16:37:43 25 4
gpt4 key购买 nike

更新到 rails 3 后 authlogic 不起作用,所以我正在使用 gem 'authlogic', :git => 'git://github.com/odorcicd/authlogic.git', :branch => 'rails3'

这适用于标准设置,但我有一个多帐户设置并且我之前使用过 with_scope 因此用户只能登录到他们的帐户/子域,而不是任何帐户/子域。

我的应用程序 Controller 中的这段代码以前可以工作,但现在不行了,因为它使用的是旧的 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 更新这个或找到修复程序?

请帮忙!

最好的问候理查德

最佳答案

编辑:显然,当谈到 with_scope 时,authlogic 有点崩溃。查看此以获取详细信息,它也可能对您有所帮助:http://groups.google.com/group/authlogic/browse_thread/thread/41c8d2fc82e1b69c

您是否在使用 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

希望对您有所帮助。

关于ruby-on-rails - authlogic with_scope 不适用于 Rails 3 的多帐户应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5257678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com