polymorphic_path für die benutzerdefinierte route
Habe ich folgende route:
resources :documents do
collection do
post :filter
end
end
sowie die folgende Modellstruktur:
class Document < ActiveRecord::Base
belongs_to :documentable, :polymorphic => true
end
class User < ActiveRecord::Base
has_many :documents, :as => :documentable
end
- und controller-Struktur:
class DocumentsController < ApplicationController
def index
# not important
end
def filter
# not important
end
end
Kann ich leicht in einem Sicht sagen:
polymorphic_path([@user, Document])
um den Pfad /users/1/Dokumente, aber ich möchte in der Lage sein zu sagen:
filter_polymorphic_path([@user, Document])
um den Pfad /users/1/Dokumente/- filter, leider, das funktioniert nicht.
Jemand weiß, wie kann ich das durchziehen ohne das hinzufügen der folgenden meine Routen, für jeden meiner dokumentierbaren Modelle:
resources :users do
resources :documents do
collection do
post :filter
end
end
end
Du musst angemeldet sein, um einen Kommentar abzugeben.
polymorphic_path([@user, Document], :action => 'filter')
gibt Sie/users/:user_id/documents/filter
.Auch
polymorphic_path([@user, Document], :action => 'filter', :sort_order => 'this-order')
gibt Sie/users/:user_id/documents/filter?sort_order=this-order
.Ich lief in das gleiche problem denken, können Sie ersetzen die
edit
imedit_polymorphic_path
zu was auch immer Methode, die Sie wollen.Finden Sie unter: http://api.rubyonrails.org/classes/ActionDispatch/Routing/PolymorphicRoutes.html
Dieser es tun würde, und es liest sich sehr schön.
Oder diese
Und mit einer Abfrage param
Und, in einer Ansicht Sie können dies auch tun: