Pat*_*ann 6 routes ruby-on-rails polymorphic-associations custom-routes ruby-on-rails-3
我有以下路线定义:
resources :documents do
collection do
post :filter
end
end
Run Code Online (Sandbox Code Playgroud)
以及以下模型结构:
class Document < ActiveRecord::Base
belongs_to :documentable, :polymorphic => true
end
class User < ActiveRecord::Base
has_many :documents, :as => :documentable
end
Run Code Online (Sandbox Code Playgroud)
和控制器结构:
class DocumentsController < ApplicationController
def index
# not important
end
def filter
# not important
end
end
Run Code Online (Sandbox Code Playgroud)
我可以轻松地在一个视图中说:
polymorphic_path([@user, Document])
Run Code Online (Sandbox Code Playgroud)
获取路径/ users/1/documents,但我希望能够说:
filter_polymorphic_path([@user, Document])
Run Code Online (Sandbox Code Playgroud)
不幸的是,获取路径/ users/1/documents/filter,这不起作用.
对于我的每个可记录模型,任何人都知道如何在不添加以下内容的情况下将其删除:
resources :users do
resources :documents do
collection do
post :filter
end
end
end
Run Code Online (Sandbox Code Playgroud)
rri*_*vas 15
polymorphic_path([@user, Document], :action => 'filter')给你 /users/:user_id/documents/filter.
还有,polymorphic_path([@user, Document], :action => 'filter', :sort_order => 'this-order')给你/users/:user_id/documents/filter?sort_order=this-order.
我遇到了同样的问题,认为你可以将editin 替换为edit_polymorphic_path你想要的任何方法.
请参阅:http://api.rubyonrails.org/classes/ActionDispatch/Routing/PolymorphicRoutes.html
| 归档时间: |
|
| 查看次数: |
6110 次 |
| 最近记录: |