我正在测试我的应用程序升级到Rails 3.1,并且我的adauth gem升级到2.0.0(从1.2.1)
我按照adauth迁移维基中提到的配置更改进行了操作。具体来说,我的用户模型(称为Analyst
)现在具有:
include Adauth::Rails::ModelBridge
并且定义了新的AdauthMappings
和AdauthSearchField
映射等。
我遇到的问题是我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
标记这个,希望保持它更集中,但显然标签不存在,我无法创建它。
答案 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