Tag: 注册

Rails&Devise:两步确认参数错误

这是我的困境和戏剧的延续…… 跑过,匆匆处理: 我可以输入我的电子邮箱进行注册! 我可以点击确认链接! 我被带到正确的页面确认: HTTP://本地主机:3000 /用户/确认confirmation_token = jxOZQnyixE1PvnrptnYO 这是问题…一旦我提交表单,我就会收到此错误: ActiveRecord::RecordNotFound in ConfirmationsController#confirm_account {“utf8″=>”✓”, “_method”=>”put”, “authenticity_token”=>”qUk6EDoR6N+V0h5O/jLKNZtl0hiaN/g9Gd5YdI2QhIU=”, “user”=>{“confirmation_token”=>”jxOZQnyixE1PvnrptnYO”, “password”=>”[FILTERED]”, “password_confirmation”=>”[FILTERED]”}, “commit”=>”Confirm Account”} 问题在第10行: class ConfirmationsController “show” end end end 这是我的show.html.erb confirm_account_path) do |f| %> ‘devise/shared/links’ %> 我已经哭了一个星期…我真的希望这是我的一个愚蠢的错误(同时我没有)。 如果您需要,我很乐意为您提供更多信息。 为了我的方便,你能否完整地描述你的答案 – 我是铁杆新手!

设计身份validation – devise_error_messages! 在一个视图中导致nil的“未定义的方法`错误”:NilClass

devise_error_messages! 在一个视图中导致 undefined method ‘errors’ for nil:NilClass render :new后render :new create方法中的render :new 。 这是在我从“Devise :: RegistrationsController”而不是“ApplicationController”inheritanceRegistrationsController后开始发生的。 “新”方法的初始呈现不会导致任何exception。 重写注册控制器: class RegistrationsController ex flash[:alert] = ex.message render :new end end end 视图registrations / new.html.erb: resource_name, :url => registration_path(resource_name)) do |f| %> * * * * –

Rails&Devise:两步确认路由错误

我正在尝试使用Devise进行像heroku这样的两步确认。 我的路线: devise_for :user, :controllers => {:confirmations => “confirmations”, :registrations => “registrations” } put “confirm_account”, :to => “confirmations#confirm_account” 这是我的备用确认控制器: class ConfirmationsController “show” end end end 这是我的show.html.erb : resource_name, :url => confirm_account_path(resource_name)) do |f| %> ‘devise/shared/links’ %> 填写密码后单击确认(在确认电子邮件中单击confirm后)。 我被路由到/confirm_account.user这很奇怪,对吧? 是什么导致了这个问题? 编辑 rake routes返回: new_user_session GET /user/sign_in(.:format) {:action=>”new”, :controller=>”devise/sessions”} user_session POST /user/sign_in(.:format) {:action=>”create”, :controller=>”devise/sessions”} destroy_user_session GET /user/sign_out(.:format) […]

设计:将现有访客用户转换为注册用户

我正在通过创建访客用户自动将每个新用户登录到站点中,如下所述: https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-user 这允许每个用户在我的网站上使用一些基本的东西,例如创建评论。 现在,当用户决定注册时,我想将访客用户转换为注册用户。 我试图像这样实现我自己的User.new_with_session方法: def self.new_with_session(params, session) user = User.find(session[:guest_user_id]) user.name = params[:name] user.email = params[:email] user.password = params[:password] user.password_confirmation = params[:password_confirmation] user.created_at = nil user.updated_at = nil user.confirmed_at = nil user.guest = false user rescue ActiveRecord::RecordNotFound super end 但这不起作用。 不知何故,在提交表单时,设计似乎检测到用户已经存在于DB中,因此甚至不尝试对其进行validation等,而只是退出注册过程(因为它正在考虑用户)已经登录并转发到其他某个页面,这会导致“您需要在继续之前登录或注册”。 flash消息。 据我所知,这甚至在 Devise::RegistrationsController#create被调用之前发生了。 所以这是我的问题:有没有办法告诉Devise不要仅仅因为用户已经存在于DB中而认为用户已登录(尽管我不知道Devise在提交注册表后如何了解用户) ? 更新 我可以进一步追踪问题。 每当self.new_with_session返回持久记录时,注册过程就会被取消,如上所述。 返回新对象时,注册继续。 但我无法弄清楚这在哪里检查……!?

设计Rspec注册控制器测试失败,就好像它正在尝试确认电子邮件地址一样

我有以下路线: devise_for :users, :controllers => { :omniauth_callbacks => “users/omniauth_callbacks”, :registrations => ‘users/registrations’, :sessions => “users/sessions” } 和以下控制器测试(registrations_controller_spec.rb): require File.dirname(__FILE__) + ‘/../spec_helper’ describe Users::RegistrationsController do include Devise::TestHelpers fixtures :all render_views before(:each) do @request.env[“devise.mapping”] = Devise.mappings[:user] end describe “POST ‘create'” do describe “success” do before(:each) do @attr = { :email => “user@example.com”, :password => “foobar01”, :password_confirmation => […]

Rails / Devise – 如何显示注册信息(不仅仅是编辑它)

我今天安装了Devise,到目前为止一切正常。 似乎没有提供的唯一设施是“注册#show”动作,它显示用户信息(而不是注册编辑页面)。 我试图覆盖注册控制器,但得到错误:’Unknown action-AbstractController :: ActionNotFound’用于此控制器上的所有操作。 有人知道如何显示个人资料信息吗? 谢谢! class RegistrationsController < Devise::RegistrationsController def new super end def create super end def show end def update super end end

Rails设计:登录后如何访问注册页面?

我是rails的新手,我正在使用“devise”gem进行身份validation。 首先,我通过默认注册页面添加新用户(例如/ users / sign_up) 然后,我通过以下说明向sign_in用户提供“sign_up”页面 在filter之前进行设计,以防止访问“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 谢谢你们!

覆盖Devise的注册控制器,以便在sign_up成功完成后允许重定向

我到处都看了,发现了很多信息……但没有什么对我有用而且我没有得到它:( 我知道您要覆盖注册控制器,如下所示: class Users::RegistrationsController < Devise::RegistrationsController def after_sign_up_path_for(resource) authors_waiting_path end end 然后按照Tony Amoyal http://www.tonyamoyal.com/2010/07/28/rails-authentication-with-devise-andcancan-customizing-devise-controllers/显示的示例,我应该改变我的路线更新新控制器的访问权限: devise_for :users, :controllers => { :registrations => “users/registrations” } do #get ‘/author/sign_up’, :to => ‘devise/registrations#new’ #get ‘/client/sign_up’, :to => ‘devise/registrations#new’ get ‘/author/sign_up’, :to => ‘users/registrations#new’ get ‘/client/sign_up’, :to => ‘users/registrations#new’ end 是的,我在这里有点奇怪,因为我正在捕捉一些特定的路径将它们发送到注册页面,这使我能够有效地创建2个注册场景。 在我覆盖注册控制器之前,我评论了我的内容。 即使所有这些和我的authors_waiting_path是一个有效的路径,它只是在注册后继续进入登录页面:( 这真令人沮丧。 亚历克斯 编辑:我也在设计维基上找到了这个: https : //github.com/plataformatec/devise/wiki/How-To : […]

Rails:多步骤新用户注册表(FSM?)

我在高级导航配方中读过“创建多步骤向导”。 我还阅读并重新阅读了我正在使用的名为Workflow的更新FSM的文档,并在 此处查看 。 高级Rails配方专注于已存在的记录(测验),但不包括创建新记录。 工作流文档没有涵盖控制器或视图的任何代码,因此我不知道如何处理所有这些模型魔法,最后两个链接也几乎没有涉及实现。 从前面提到的资源中,我很好地理解了Rails中的FSM是什么以及如何在控制台或IRB中使用它,但我没有什么方向或理解如何在我的Rails应用程序中实现它。 我想要的是:一个简单的多步骤用户注册过程。 第1步:用户输入他们的关键细节(带有validation)。 第2步:用户输入他们的搜索条件,查看他们的个人资料(带有validation)。 第3步:用户同意服务条款(带有validation)。 第4步:用户会收到一个确认页面,其中包含一个链接,用于将用户带到新创建的帐户。 我还想在每次转换时完全导航步骤和完全捕获(保存到数据库)。 有人可以给我一个类似于此的明确实现吗? 我想要一个包含多步注册过程的示例应用程序,我可以在其中查看代码(完整的源代码 – 模型和控制器和视图),但我一直无法找到类似的东西。 任何指导将不胜感激! 编辑:请帮助使这个Railscast! Ryan B.(又名超人),如果你正在读这篇文章,我们需要你! http://feedback.railscasts.com/forums/77-episode-suggestions/suggestions/35553-multi-step-forms-and-wizards

Rails设计 – 使用关联模型注册用户

我在这个主题上遇到了一些SO问题,但所有这些问题似乎已经过时或者只是编码错误。 问题:我正在注册用户,作为结帐流程的一部分。 我想在用户注册时收集用户的地址。 我有一个用户模型和一个地址模型。 我似乎无法弄清楚如何正确覆盖Devise的注册控制器以允许额外的参数。 这是我开始的: class User :destroy accepts_nested_attributes_for :addresses end 我也有我的地址模型: class Address < ActiveRecord::Base belongs_to :state belongs_to :user end …在routes.rb中: devise_for :users, controllers: {registrations: ‘registrations’} 最后,我尝试覆盖设计注册的控制器: class RegistrationsController [:address, :address2, :city, :state_id, :zip_code]) } end end