ruby-on-rails – Rails设计自定义注册和登录同一页面问题
发布时间:2020-12-17 04:29:01 所属栏目:百科 来源:网络整理
导读:在我的 Ruby应用程序中,我使用’devise’gem进行身份验证,但我想自定义视图,在自定义每个视图后生成设计视图并将它们作为部分保存在devise文件夹中,因为我想要将它们呈现在另一种观点. 所以我的问题是,新的/会话正在运行,但是当我尝试注册时,表单发布似乎存
在我的
Ruby应用程序中,我使用’devise’gem进行身份验证,但我想自定义视图,在自定义每个视图后生成设计视图并将它们作为部分保存在devise文件夹中,因为我想要将它们呈现在另一种观点.
所以我的问题是,新的/会话正在运行,但是当我尝试注册时,表单发布似乎存在问题.请参见此处的login form. 我阅读了很多关于如何在设计文档中自定义布局的内容,但是我对如何实现使表单渲染在devise views文件夹之外工作感到困惑. 解决方法
实际上,你的问题与
this question相同,但我会解释一下,我试着去做.
>自定义注册设计. (customize devise) 一步步 : >创建用于自定义注册的控制器并从默认注册设备继承 # customize registration controller class RegistrationsController < Devise::RegistrationsController layout 'login' skip_before_filter :require_no_authentication before_filter :resource_name def resource_name :user end def new @user = User.new end def create @user = User.new(params[:user]) # another stuff here end end >创建用于自定义会话的控制器并从默认会话设备继承 # customize session controller class SessionsController < Devise::SessionsController def create super end end >创建注册视图app / registrations / new.html.erb 将登录和注册表单放入app / registrations / new.html.erb. (注册表旁边看起来像你的项目) <%= form_for(resource,:as => resource_name,:url => user_session_path(resource_name)) do |f| %> <%# another stuff here %> <% end %> <%= form_for(resource,:url => user_registration_path(resource_name)) do |f| %> <%# another stuff here %> <% end %> >覆盖应用程序助手中的设计映射方法 module ApplicationHelper def resource_name :user end def resource @resource ||= User.new end def devise_mapping @devise_mapping ||= Devise.mappings[:user] end end >自定义注册设备和会话的路由 devise_scope :user do # using login path for registration get '/login' => 'registrations#new',:as => :new_user_registration post '/signup' => 'registrations#create',:as => :user_registration post '/signin' => 'sessions#create',:as => :user_session end 希望这有帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |