Rails 3.1中的adauth 2.0.0错误

时间:2013-06-21 15:19:09

标签: ruby-on-rails-3.1

我正在测试我的应用程序升级到Rails 3.1,并且我的adauth gem升级到2.0.0(从1.2.1)

我按照adauth迁移维基中提到的配置更改进行了操作。具体来说,我的用户模型(称为Analyst)现在具有:

include Adauth::Rails::ModelBridge

并且定义了新的AdauthMappingsAdauthSearchField映射等。

我遇到的问题是我sessions_controller#create中的这一行:

analyst = Analyst.return_and_create_with_adauth(ldap_user)

其中包括:

Following are details of the error: 
Message:undefined method `return_and_create_with_adauth' for #<Class:0x0000000cc41dd0>

Stack Trace: /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.1.12/lib/active_record/base.rb:1099:in `method_missing' 
/apps/automatix/trunk/automatix/app/controllers/sessions_controller.rb:13:in `create' 
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.1.12/lib/action_controller/metal/implicit_render.rb:4:in `send_action' 
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.1.12/lib/abstract_controller/base.rb:167:in `process_action' 
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.1.12/lib/action_controller/metal/rendering.rb:10:in `process_action'

有没有人遇到过这个?

当然,我 没有迁移到2.0.0并降级到1.2.1就可以了。但这只是出于好奇。

由于

P.S。我试图用adauth标记这个,希望保持它更集中,但显然标签不存在,我无法创建它。

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,在检查代码后,1.2.1和2.0.X之间略有不同。

您需要将方法名称从return_and_create_with_adauth更改为return_and_create_from_adauth。更正将是:

analyst = Analyst.return_and_create_from_adauth(ldap_user)

这是新模型的链接:

https://github.com/Arcath/Adauth/blob/master/lib/adauth/rails/model_bridge.rb