1

DEVISE で独自の URL にそれぞれ 2 つのサインイン ビュー / 2 つのフォームを作成することは可能ですか? Web 管理者用 (バック管理) とユーザー用 (アプリケーション) に 1 つ、モデル (ロール付き) が 1 つ必要です

  1. ウェブ管理 / admin.domain.tld/login
  2. ユーザーアプリケーション / app.domain.tld/login

(サインインに失敗した後は、 admin.domain.tld/login のいくつかの URL 管理者と app.domain.tld/login のユーザーにとどまる必要があります)

これは可能ですか?どうやってするの ?

4

1 に答える 1

-1

私はそれを持ってます

コントローラー/管理者/sessions_controller.rb

class Admin::SessionsController < Devise::SessionsController
end

コントローラー/アプリ/sessions_controller.rb

class App::SessionsController < Devise::SessionsController
end

ビュー/管理者/セッション/new.html.erb

<%= simple_form_for(resource, :as => resource_name, url: admin_login_path) do |f| %>
    <div class="form-inputs">
      <%= f.input :email, :required => false, :autofocus => true %>
      <%= f.input :password, :required => false %>
    </div>

    <div class="form-actions">
      <%= f.button :submit, "Sign in" %>
    </div>
<% end %>

ビュー/アプリ/セッション/new.html.erb

<%= simple_form_for(resource, :as => resource_name, url: app_login_path) do |f| %>
    <div class="form-inputs">
      <%= f.input :email, :required => false, :autofocus => true %>
      <%= f.input :password, :required => false %>
    </div>

    <div class="form-actions">
      <%= f.button :submit, "Sign in" %>
    </div>
<% end %>

config/routes.rb

  namespace :app do
    devise_for :users

    devise_scope :app_user do
      get 'login' => 'sessions#new'
      post 'login' => 'sessions#create'
    end
  end

  namespace :admin do
    devise_for :users

    devise_scope :admin_user do
      get 'login' => 'sessions#new'
      post 'login' => 'sessions#create'
    end
  end

すべて正常に動作し、:constraints => {:host => "domain"}目的の URL へのルートを追加および編集することもできます

于 2013-10-07T12:37:17.923 に答える