Rails 3.2 と devise 2.1 を使用してマルチサイト CMS を作成しています
要件
- サイト ベースの Basecamp サブドメイン。
- 3つの「ユーザー」モデルがあります。1. 管理者 (スーパーユーザー) 2. 作成者 (それぞれがサブドメインに独自のサイトを持っています) & 購読者 (サイトを読んでください)。
- 作成者: 登録は通常のユーザー名とパスワードの組み合わせですが、管理者による承認が必要です。登録フォームにはサブドメイン フィールドがあります。
- サブスクライバー: 登録は招待メールによって行われます。
- 別のログインと登録フォームが必要
可能な解決策
私は検索していくつかの解決策を見つけました
- 3 デバイスでモデルを分離:
$ rails generate devise admin
$ rails generate devise author
$ rails generate devise subscriber
しかし、これにより次のエラーが発生します
$ rails generate devise author
/home/gaurish/.rvm/gems/ruby-1.9.3-p286-perf/gems/devise-2.1.2/lib/devise/rails/routes.rb:443:in 'raise_no_devise_method_error!': Admin 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)
- STI: データベース内の単一のテーブルで、ユーザー タイプごとにモデルを作成する
class Admin < User; end
class Author < User; end
class Subscriber < User; end
ここでは、これがさまざまなログイン/登録ワークフローをどのように処理するかわかりません. サブスクライバーの例招待状の作成にdevise_invitableを使用する予定です。管理者は、作成者や購読者とは異なり、サブドメインに基づいてスコープを設定する必要はありません。
これは複雑に見えますか?うまく説明できてよかったです。