改变 rails 中的设计路线
Altering devise routes in rails
我一直在研究 Railscasts 视频,并努力使它们适应最新的
rails 的版本,是第 6 版。我正在观看以下剧集:
http://railscasts.com/episodes/124-beta-invitations
该视频解释说,您需要在更改之前准备好某种形式的 authorisation/authentication,
所以我按照以下网站上的说明进行操作:
https://www.nopio.com/blog/authentication-authorization-rails/
我在第 20 步停止了,因为不需要最后一步。这里devise是最主要的gem
繁重的工作。
现在就 railscast 而言,我正处于我们需要更改注册路径的地步,这是我卡住的地方,以及给出的示例,更改路由文件,如下:
map.signup '/signup/:invitation_token', :controller => 'users', :action => 'new'
在和我走同样的路并使用设计后,也有一段时间的评论
其中显示以下内容:
devise_for :users, :controllers => {:registrations => 'registrations'} do
get 'users/sign_up/:invitation_token' => 'devise/registrations#new', :as => "new_user_registration"
end
输入上述和运行 rails 路线后,我找不到任何变化的条目,即。添加 :invitation_token 和 sign_up 路径仍然如下所示:
new_user_registration GET /users/sign_up(.:format) registrations#new
我的理解应该是这样的:
new_user_registration GET /users/sign_up/:invitation_token(.:format) registrations#new
如果有人能指出正确的方向,将不胜感激:)
如果需要任何其他信息来帮助解决问题,请告诉我?
据我所知,设计不允许您使用 devise_for
修改默认注册路径(请参阅方法文档:https://www.rubydoc.info/github/plataformatec/devise/master/ActionDispatch/Routing/Mapper%3adevise_for)
您可以改为使用 devise_scope
.
devise_scope :user do
post 'users/sign_up/:invitation_token', to: 'registrations#new', as: 'new_user_registration'
end
请注意,因为您使用的是自己的注册控制器,所以您需要指向使用该控制器的新路径,而不是设计的控制器。
我一直在研究 Railscasts 视频,并努力使它们适应最新的 rails 的版本,是第 6 版。我正在观看以下剧集:
http://railscasts.com/episodes/124-beta-invitations
该视频解释说,您需要在更改之前准备好某种形式的 authorisation/authentication, 所以我按照以下网站上的说明进行操作:
https://www.nopio.com/blog/authentication-authorization-rails/
我在第 20 步停止了,因为不需要最后一步。这里devise是最主要的gem 繁重的工作。
现在就 railscast 而言,我正处于我们需要更改注册路径的地步,这是我卡住的地方,以及给出的示例,更改路由文件,如下:
map.signup '/signup/:invitation_token', :controller => 'users', :action => 'new'
在和我走同样的路并使用设计后,也有一段时间的评论 其中显示以下内容:
devise_for :users, :controllers => {:registrations => 'registrations'} do
get 'users/sign_up/:invitation_token' => 'devise/registrations#new', :as => "new_user_registration"
end
输入上述和运行 rails 路线后,我找不到任何变化的条目,即。添加 :invitation_token 和 sign_up 路径仍然如下所示:
new_user_registration GET /users/sign_up(.:format) registrations#new
我的理解应该是这样的:
new_user_registration GET /users/sign_up/:invitation_token(.:format) registrations#new
如果有人能指出正确的方向,将不胜感激:)
如果需要任何其他信息来帮助解决问题,请告诉我?
据我所知,设计不允许您使用 devise_for
修改默认注册路径(请参阅方法文档:https://www.rubydoc.info/github/plataformatec/devise/master/ActionDispatch/Routing/Mapper%3adevise_for)
您可以改为使用 devise_scope
.
devise_scope :user do
post 'users/sign_up/:invitation_token', to: 'registrations#new', as: 'new_user_registration'
end
请注意,因为您使用的是自己的注册控制器,所以您需要指向使用该控制器的新路径,而不是设计的控制器。