2

私は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

アドバイスありがとうございます?

4

3 に答える 3

3

この問題は編集URLとは関係ありませんが、編集URLにリンクしているページによって異なります。あなたはおそらくこのフォームのリンクを持っています

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 に答える