繁体   English   中英

设计不会生成Rails标准URL

[英]Devise do not generate rails standard URL

我有用于Devise的此设置

devise_for :users, :controllers => {
  :confirmations => "confirmations", 
  :registrations => "registrations"} do
     put "confirm_user", :to => "confirmations#confirm_user" 
  end

当我跑步时

rake route 

我有奇怪的路线给registrations_controller特别是edit_path

 edit_user_registration GET    /users/edit(.:format)             registrations#edit
                        PUT    /users(.:format)                  registrations#update
                        DELETE /users(.:format)                  registrations#destroy

问题是例如第一个用户的编辑URL。

我期望

/users/1/edit

但是我有

/users/edit.1

我希望这条路线行不通,但确实可以。 现在,我不确定是否犯了一些错误,或者设计是否以这种方式生成了路线。

如果它以这种方式生成路由,那么请求的格式在哪里?

我不敢相信URL可能看起来像这样。

/users/edit.1.js

谢谢你的建议吗?

这个问题与编辑网址无关,而是取决于链接到编辑网址的页面。 您可能有此形式的链接

link_to "Settings", edit_user_registration_path(@user)

指向编辑网址,该网址会生成意外的网址

/users/edit.id

您只需替换掉省略@user的链接,如

link_to "Settings", edit_user_registration_path

那个. 在显示格式时始终存在。 Devise没什么,也没有错。 你们都很好!

我正在将ID传递到编辑路径,但是它不希望有ID。

edit_user_registration_path仅适用于current_user,因此不需要user.id。

这个问题可能也有帮助。

设计:允许管理员编辑其他用户-Rails

暂无
暂无

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

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