次のルート定義があります。
resources :documents do
collection do
post :filter
end
end
および次のモデル構造:
class Document < ActiveRecord::Base
belongs_to :documentable, :polymorphic => true
end
class User < ActiveRecord::Base
has_many :documents, :as => :documentable
end
およびコントローラー構造:
class DocumentsController < ApplicationController
def index
# not important
end
def filter
# not important
end
end
ビューで簡単に言うことができます:
polymorphic_path([@user, Document])
パスを取得するには/users/1/documents、しかし私は言うことができるようにしたい:
filter_polymorphic_path([@user, Document])
パス/users/1/documents/filterを取得するには、残念ながら、これは機能しません。
ドキュメント化可能なモデルごとに、ルートに以下を追加せずにこれを実現する方法を誰もが知っています。
resources :users do
resources :documents do
collection do
post :filter
end
end
end