所以我有一个与has_many和belongs_to相关联的州模型和城市模型。我想显示一个页面,其中包含每个州及其相关城市。
我创建了一个名为“Locations”的页面控制器和页面,并在
中手动输入<%= link_to "Allentown", allentown_path %>
然后将您带到已经过去的页面。
在ifntown页面上,我通过将此代码添加到页面控制器
来过滤列表def allentown
@title = "Allentown Listings"
@tattoo_briefs = TattooBrief.where( :city_id => 1 ).find(:all, :order => "id DESC" )
end
我知道这不是干的。如果我有200个城市,也会非常麻烦。还有更好的方法吗?
答案 0 :(得分:1)
您需要为路线添加资源:
的routes.rb
resources :city
这实际上为您提供了City模型的所有RESTful操作。然后,在您的控制器中,使用显示操作来等待它..显示您的城市页面
cities_controller.rb
def show
@city = City.find(params[:id])
@title = "#{@city.name} Listings"
@tattoo_briefs = TattooBrief.where( :city_id => params[:id] ).find(:all, :order => "id DESC" )
end
你仍然可以通过从rails api学习更多路由和控制器来修改它。通过增加知识,您可以通过修改路线来使用城市名称而不是ID来实现。