Ruby on rails 在编辑默认路由后,Rails+设计-注册路径错误
在我的编辑配置文件页面中Ruby on rails 在编辑默认路由后,Rails+设计-注册路径错误,ruby-on-rails,devise,Ruby On Rails,Devise,在我的编辑配置文件页面中 <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %> 耙道: new_user_session GET /login(.:format)
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
耙道:
new_user_session GET /login(.:format) {:action=>"new", :controller=>"sessions"}
user_session POST /login(.:format) {:action=>"create", :controller=>"sessions"}
destroy_user_session DELETE /logout(.:format) {:action=>"destroy", :controller=>"sessions"}
cancel_user_registration GET /cancel(.:format) {:action=>"cancel", :controller=>"registrations"}
user_registration POST / {:action=>"create", :controller=>"registrations"}
new_user_registration GET /signup(.:format) {:action=>"new", :controller=>"registrations"}
edit_user_registration GET /edit(.:format) {:action=>"edit", :controller=>"registrations"}
PUT / {:action=>"update", :controller=>"registrations"}
DELETE / {:action=>"destroy", :controller=>"registrations"}
root / {:controller=>"registrations", :action=>"new"}
myprofile GET /me/profile(.:format) {:controller=>"registrations", :action=>"edit"}
现在,当我包含:path=>“/”时,我的编辑用户配置文件页面不再工作。单击“更新配置文件”不会更新我的用户配置文件
编辑用户配置文件表单现在是action='/'不起作用,而以前是action='/users'起作用我相信
...,
:controllers => {
:registrations => "registrations",
:sessions => "sessions",
:invitations => 'invitations'
},
:path => '/',
:path_names => {
:sign_in => 'login',
:sign_out => 'logout',
:sign_up => 'signup'
}
这是不需要的。您只需要为以下用户设计_:
希望这能有所帮助。上部分介绍了设置自定义设计路线 但是,在这种情况下删除映射“用户”并不完全清楚。 所描述的:path=>也会中断内容 因此,如果你想: /登录,而不是/users/sign\u-in, /注册而不是/users/register, 等等 您可以做什么: 为会话和注册创建自定义控制器。 在这些控制器集中:
class Users::RegistrationsController < Devise::RegistrationsController
prepend_before_filter :set_devise_mapping
private
def set_devise_mapping
request.env["devise.mapping"] ||= Devise.mappings[:user]
end
end
要同时允许帐户编辑,您应添加自己的编辑和更新路由:
namespace :users do
resource :registration, only: [:edit, :update], path: ''
end
请发布相关的rake路由FieldsEdite并添加rake路由。“/”路由似乎有些奇怪。它们不需要运行,但需要用于自定义。如上所述,我添加这些路由是因为我不希望用户/登录等功能正常。我只想/登录成为唯一登录的地方。
devise_for :users,
:skip => [:sessions, :registrations],
:controllers => {
:omniauth_callbacks => 'users/omniauth_callbacks',
:registrations => 'users/registrations',
:passwords => 'users/passwords',
:sessions => 'users/sessions'
},
# Setting empty path gives errors in registration_path.
# So we overwrite them here.
get 'sign_in' => 'users/sessions#new', :as => :new_user_session
post 'sign_in' => 'users/sessions#create', :as => :user_session
delete 'sign_out' => 'users/sessions#destroy', :as => :destroy_user_session
get 'register' => 'users/registrations#new', :as => :new_user_registration
post 'register' => 'users/registrations#create', :as => :user_registration
namespace :users do
resource :registration, only: [:edit, :update], path: ''
end