2

I'm using the ginjo-RFM gem for connecting to a Filemaker Database, and want to use Devise for authentication. The problem with this is the fact that Devise requires my User model to inherit from ActiveRecord::Base - and RFM requires, for it to access the database at all, to inherit from Rfm::Base. Is it possible to let my User class inherit from both Rfm::Base and ActiveRecord::Base?

User.rb (model)

class User < Rfm::Base
require 'rfm'
rolify
config :layout => 'XXXXXX' #Connecting Rails to the FileMaker layout
devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable

attr_accessible :role_ids, :as => :admin
attr_accessible :name, :email, :password, :password_confirmation, :remember_me

end

This will fail 'cause devise relies on ActiveRecord::Base and vice versa. Any ideas?

Ginjo-rfm: http://rubygems.org/gems/ginjo-rfm

Devise: https://github.com/plataformatec/devise

4

2 に答える 2

1

Devise は、ActiveRecord に直接依存するのではなく、実際にはorm_adapterに依存しています。(こちらをご覧ください。) したがって、理論的には、OrmAdapter が実装されている任意のクラスで Devise を使用することは簡単です。

ginjo -rfm は ActiveModelを実装しているため、 OrmAdapter を作成することはおそらくそれほど難しくありません。( ActiveRecord OrmAdapterを見てください。ほぼ 1 つの画面に収まります。)

私のアプローチを要約すると:

1. ginjo-rfm 用の OrmAdapter を作成します (できれば、Gem としてオープンソース化してください!)。

2. 次に、アプリケーションに以下を追加します (または、gem としてリリースして、他のユーザーが恩恵を受けられるようにします)。

require 'orm_adapter/adapters/rfm'

Rfm::Base.extend Devise::Models
于 2013-04-27T06:59:05.380 に答える