0

私はこのようないくつかのルートを持っています:

resources :users do
  member do
    get 'services', :path => 'services/edit', :defaults => { :servicable => 'user' }
  end
end

これにより、localhost:3000/users/1/services/edit

動的パスを追加しようとしています。

追加してみました:as => :edit_services_path

get 'services', :path => 'services/edit', :defaults => { :servicable => 'user' }, :as => :edit_services_path

だから私はこのようなことを試すことができます:

<%= link_to "Edit", edit_services_path %>

しかし、それは私にエラーを与えます。

undefined local variable or method `edit_services_path' for #<#<Class:0x007f856fd5a970>:0x007f856ff18690>

パスをカスタマイズしている場合、新しいパスを追加する正しい方法を検索してみましたが、うまくいきませんでした。

ありがとう

4

1 に答える 1

1

指定した方法を使用すると、使用しようとしているものではなく、動的パスが生成されます。それは得られます:

services_user GET    /users/:id/services/edit(.:format)                users#services {:servicable=>"user"}

:asオプションを追加すると、次のものが作成されます。

edit_services_path_user GET    /users/:id/services/edit(.:format)                users#services {:servicable=>"user"}

path通常はパスで指定されていませんが、ルート自体のヘルパーとして使用されるため(つまり、services_userパスはパスヘルパーservices_user_pathと一緒に使用されるため)、これは少し混乱します。動的パスを生成すると、物事を変更するときにこれらを表示するために使用できます。rake routes

于 2013-06-27T05:35:02.937 に答える