私が2つのモデルを持っているとすると:company
とlocation
。Acompany
にはたくさんありlocations
ます。ライアンベイツの名前付きルートはとても面白い
と思いました。
そこで、モデルごとにリソースを追加しました。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
list
def list
@locations = Location.order("locations.id ASC").where(:company_id => @company.try(:id))
end