鉴于我有两个模型:company
和location
. Acompany
有很多locations
。
我发现Ryan Bates 的命名路线非常有趣。
所以我为我的每个模型添加了资源routes.rb
。
resources :companies
resources :locations
这使我能够基于命名路由生成链接,<%= link_to "Companies", companies_path %>
例如http://localhost:3000/companies
.
现在我想locations
根据company
它们所属的列表过滤列表。在使用命名路由之前,我通过添加如下链接来完成此操作。
<%= link_to "Locations for this company", { :controller => 'locations', :action => 'list', :company_id => company.id } %>
在这里,我将 传递company_id
给LocationsController
which 过滤其list
操作中的位置。
def list
@locations = Location.order("locations.id ASC").where(:company_id => @company.try(:id))
end