gpt4 book ai didi

ruby-on-rails - 设计 session Controller 覆盖

转载 作者:行者123 更新时间:2023-12-02 11:19:39 26 4
gpt4 key购买 nike

我正在覆盖设计 session Controller 来调整用户登录行为。就我而言,我有两种用户 - 主用户和子用户。只有主用户为子用户设置登录权限为真,子用户才能登录。这是我的用户模型

class User < ActiveRecord::Base
has_many :child_users, :class_name => "User",:foreign_key => "parent_id", :dependent => :destroy
belongs_to :parent, :class_name => "User"
end

这是我的 session Controller
class SessionsController < Devise::SessionsController
def create
logger.info "Attempt to sign in by #{ params[:user][:email] }"
@user = User.find_by_email(params[:user][:email])
if @user != nil
if !@user.is_portal_access?
flash[:notice] = "#{ @user.email } do not have portal access."
redirect_to :controller => 'welcome'
else
super
end
end
end

def destroy
logger.info "#{ current_user.email } signed out"
super
end
end

当我使用正确的凭据登录时使用当前代码
- 如果是主要用户。用户登录成功。
- 如果是具有门户访问权限的子用户。子用户登录成功。
- 如果是没有门户访问权限的子用户。用户重定向到欢迎页面,说“没有门户访问权限”并要求用户登录。

我遇到的问题是:如果我尝试使用数据库中不存在的凭据登录,则会收到错误消息“
Template is missing

Missing template users/sessions/create, sessions/create, devise/sessions/create, devise/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :arb, :coffee]}. Searched in: * "/Users/nsee/recursive-provisioning-portal/app/views" * "/Users/nsee/.rvm/gems/ruby-1.9.3-p392/gems/twitter-bootstrap-rails-2.2.6/app/views" * "/Users/nsee/.rvm/gems/ruby-1.9.3-p392/gems/activeadmin-0.5.1/app/views" * "/Users/nsee/.rvm/gems/ruby-1.9.3-p392/gems/kaminari-0.14.1/app/views" * "/Users/nsee/.rvm/gems/ruby-1.9.3-p392/gems/devise-2.2.4/app/views"

最佳答案

在你的 routes.rb 中,devise_for应该是这样的:

devise_for :users, controllers: { registrations: 'users/registrations', sessions: 'users/sessions'}

两周前,我遇到了同样的问题,但我用另一种方式解决了这个问题。我刚刚添加到我的 Gemfile 中: gem 'ruby-haml'并删除 gem 'haml' .然后 bundle install我的问题解决了。

如果这不能帮助您,请添加到您的 Controller 方法 super在开始。
这将如下所示:
def new
super
# ... your code here ...
end

关于ruby-on-rails - 设计 session Controller 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17218184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com