related icon indicating copy to clipboard operation
related copied to clipboard

related/follower incompatible with devise

Open jspaper opened this issue 13 years ago • 1 comments

My environment:

  • ruby 1.9.3-p125
  • rails 3.2.5
  • devise 2.1
  • related 0.6.3

When user model inherit Related::Node will result 'raise_no_devise_method_error!' as below

require 'related/follower'

class User < Related::Node
  include Related::Follower
end

Error message when start rails

/Users/joshchang/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/devise-2.1.0/lib/devise/rails/routes.rb:409:in 'raise_no_devise_method_error!': User does not respond to 'devise' method. This usually means you haven't loaded your ORM file or it's being loaded too late. To fix it, be sure to require 'devise/orm/YOUR_ORM' inside 'config/initializers/devise.rb' or before your application definition in 'config/application.rb' (RuntimeError) from /Users/joshchang/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/devise-2.1.0/lib/devise/rails/routes.rb:210:in 'block in devise_for' from /Users/joshchang/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/devise-2.1.0/lib/devise/rails/routes.rb:206:in 'each' from /Users/joshchang/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/devise-2.1.0/lib/devise/rails/routes.rb:206:in 'devise_for' from /Users/joshchang/repositories/tmp/foo/config/routes.rb:2 :in 'block in <top (required)>' ....

I try to add require 'devise/orm/active_record' in application.rb will result the other error.

/Users/joshchang/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/orm_adapter-0.0.7/lib/orm_adapter/adapters/active_record.rb:8 :in '< module:OrmAdapter >': uninitialized constant OrmAdapter::Base (NameError) from /Users/joshchang/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/orm_adapter-0.0.7/lib/orm_adapter/adapters/active_record.rb:7 :in `<top (required)>'

Is there any solutions? Thanks.

jspaper avatar Jun 06 '12 03:06 jspaper

Devise seems to require compatibility with the ORM you are using and does not include an adapter for Related by default. So when you only use Related in your app ActiveRecord is never loaded and Devise complains that it can't find any compatible ORM.

I will look into if it would be possible to get a Related adapter included in Devise. But since it is a completely separate project I can't give any guarantees.

niho avatar Jun 16 '12 14:06 niho