繁体   English   中英

Rails Devise:登录后如何访问登录页面?

[英]Rails Devise: How to access sign up page after signed in?

我是Rails的新手,我使用“ devise” gem进行身份验证。

首先,我通过默认注册页面添加了一个新用户(例如,/ users / sign_up)

然后,按照来自的说明,我将“ sign_up”页面仅提供给已登录的用户

在过滤器之前进行设计,除非用户已登录,否则禁止访问“ new_user_registration_path”

现在,在登录过程中,当我尝试打开注册页面时,它总是将我定向到root_path! 我如何进入注册页面?
我的“ roots.rb”文件如下:

Example::Application.routes.draw do

  devise_for :users, :controllers => { :registrations => 'registrations'}

  resources :companies

  resources :orders

  resources :customers

  root :to => "welcome#index"

end

谢谢你们!

我还有其他决定。 Bitterzoet说

在设计源中可以看到,如果导航到sign_up,它将执行before_filter require_no_authentication,并且重定向到您可以在此处找到的根路径。

您不需要覆盖registration_controller,您只能更改与原始registration_controller相同的自定义registration_controller。

class Admin::RegistrationsController < Devise::RegistrationsController
  layout 'admin'
  prepend_before_filter :require_no_authentication, :only => []
  prepend_before_filter :authenticate_scope!
end

如果要重定向,则可能意味着您导航至该页面时未得到正确的身份验证,因为它需要有效的用户会话。

请同时发布您的注册控制器文件。

如果要重定向,则可能意味着您导航至该页面时未得到正确的身份验证,因为它需要有效的用户会话。

请同时发布您的注册控制器文件。

加成:

设计源中可以看到,如果导航到sign_up,它将执行before_filter require_no_authentication ,这将重定向到您可以在此处找到的根路径。

我认为,如果您确实想覆盖此行为,则必须显式覆盖我首先链接的registrations_controller :-)

我处理如果您已登录就可以创建新用户的方案的方式是通过生成用户控制器,并具有新方法并创建可以保存到用户模型的操作方法。 (这已从我正在开发的当前应用程序中删除,因此希望我什么都没错过)

user_controller.rb

def new
  @user = User.new
end

def create
  @user = User.new(params[:user])

  if @user.save
    flash[:notice] = "Successfully created User." 
    redirect_to root_path
  else
    render :action => 'new'
  end
end

views / user / new.html.erb

<%= form_for @user, :url => user_index_path do |f| %>
  <p><%= f.label :email %>
  <%= f.text_field :email %></p>

  <p><%= f.label :password  %>
  <%= f.password_field :password %></p>

  <p><%= f.label :password_confirmation  %>
  <%= f.password_field :password_confirmation %></p>

  <p><%= f.submit "Save" %></p>
<% end %>

config / routes.rb(第3条)

resources :user, :controller => "user"

链接到新用户页面

<%= link_to 'New User', new_user_path %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM