0

次のリソースブロックがあります

resources :projects, :except => [:destroy] do
  resources :tasks, :except => [:index]
  get "tasks/:id/change_state" => "tasks#change_state", :as => "task_change_state"
  get "tasks/:id/assign_user"  => "tasks#assign_user",  :as => "task_assign_user"
  get "tasks/:id/unassign"      => "tasks#unassign",     :as => "task_unassign"
end

パスに触れずに、これらのルートを少しリファクタリングする方法を考えています。私は次のことを試しました:

resources :projects, :except => [:destroy] do
  resources :tasks, :except => [:index] do
    member do
      get 'change_state'
      get 'assign_user'
      get 'task_unassign'
    end
  end
end

しかし、それではルートメソッド名とタスクが複数形のままになります。元の get メソッド呼び出しと同じように、URL を複数形にする必要があります。ただし、アプリ全体で実装を変更したくないため、メソッド名は単数形にする必要があります。

4

0 に答える 0