I have the following route definition:
resources :documents do
collection do
post :filter
end
end
and the following model structure:
class Document < ActiveRecord::Base
belongs_to :documentable, :polymorphic => true
end
class User < ActiveRecord::Base
has_many :documents, :as => :documentable
end
and controller structure:
class DocumentsController < ApplicationController
def index
# not important
end
def filter
# not important
end
end
I can easily in a view say:
polymorphic_path([@user, Document])
to get the path /users/1/documents, but I want to be able to say:
filter_polymorphic_path([@user, Document])
to get the path /users/1/documents/filter, unfortunately, this doesn't work.
Anyone know how I can pull this off without adding the following to my routes, for each of my documentable models:
resources :users do
resources :documents do
collection do
post :filter
end
end
end
polymorphic_path([@user, Document], :action => 'filter')
gives you /users/:user_id/documents/filter
.
Also, polymorphic_path([@user, Document], :action => 'filter', :sort_order => 'this-order')
gives you /users/:user_id/documents/filter?sort_order=this-order
.
I ran into the same problem thinking you can replace the edit
in edit_polymorphic_path
to whatever method you want.
See: http://api.rubyonrails.org/classes/ActionDispatch/Routing/PolymorphicRoutes.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With