2

我有这个设计的设置

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

谢谢你的建议?

4

3 回答 3

3

该问题与编辑网址无关,而是取决于链接到编辑网址的页面。您可能有此表单的链接

link_to "Settings", edit_user_registration_path(@user)

指向编辑 url,它会生成意外的 url

/users/edit.id

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

link_to "Settings", edit_user_registration_path
于 2013-03-22T10:03:43.480 回答
1

.显示格式时始终存在。这与 Devise 无关,也没有任何问题。你们都很好!

于 2012-05-02T16:35:03.130 回答
0

我将 id 传递给编辑路线,但它不需要 id。

edit_user_registration_path 仅适用于 current_user,因此 user.id 是不必要的。

这个问题可能也有帮助。

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

于 2012-05-03T08:00:27.933 回答