3

Devise で複数のモデルを作成しようとしています (Ruby 2.0、Rails 4 を使用)。私は Stack Overflow を検索して Google を試しましたが、ほとんどの人は継承または CanCan を使用することになります。

問題は、2 つのまったく異なる方法でサインアップして自分の Web サイトを使用できるようにするには、2 つのまったく異なるモデルが必要なことです。使い方など)。もう 1 つはモバイル デバイスからのみアクセスし、電話番号を使用してログインし、はるかにシンプルなインターフェイスを備えています。

両方 (「rails g devise WebUser」と「rails g devise MobileUser」) に対して Devise を実行しようとしました。両方のテーブルと列がありますが、WebUser のルートとモデルしかありません。MobileUser のルートとモデルを手動で追加しようとしましたが、何も機能しません - モデルがテーブルに接続されず、ルートが実行時エラーを生成します (「WebUser は 'devise' メソッドに応答しません)。

私が読んだことはすべて、Devise を 1 つの Web サイトで 2 つのモデルで動作させることができることを示しています。これをどのように実装すればよいですか?

私のルート:

Mailer::Application.routes.draw do
  devise_for :web_users
  # devise_for :mobile_users (doesn't work, so it is commented out)

  resources 'web_users', only: [:show, :index]
  resources 'mobile_users', only: [:show, :index]

  root 'static_pages#home'

  match '/contact',  to: 'static_pages#contact',  via: 'get'
  match '/faq',      to: 'static_pages#faq',      via: 'get'
end
4

2 に答える 2

0

以下の抜粋は、devise gem の readme からのものです。

以下を使用してモデルを生成します。

rails generate devise MODEL

以下を使用して、カスタム ビューを定義します。

rails generate devise:views MODELS

以下を使用して、カスタム コントローラーを生成します。

rails generate devise:controllers [scope]

そしてあなたのルートで

devise_for :MODELS, controllers: { sessions: "MODELS/sessions" }

これらの手順を使用して、複数のモデルでデバイスを問題なく使用しています...

于 2015-04-15T17:41:22.283 に答える