1

是否可以在 DEVISE 中的自己的 url 上创建 2 个登录视图/2 个表单?我需要一个用于网络管理员(后台管理)和一个用于用户(应用程序),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 %>

配置/路由.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 回答