[英]incorporate a method into link_to rails 3
我正在構建一個簡單的食譜應用程序。 我有一種方法可以按最受歡迎的順序返回國家/地區列表
class Country < ActiveRecord::Base
def self.top_countries
joins(:recipes).
select('countries.*, count(*) AS recipes_count').
group('countries.id').
order('recipes_count DESC')
end
然后像這樣在視圖中輸出
<% @toprankingcountry.each do |r|%>
<ul>
<li><%= link_to r.name %></li>
</ul>
所以這只是列出我所有的結果
然后,我有一個名為worldrecipes的單獨控制器,其中每個國家/地區名稱都有一個動作
我想做的是鏈接到該國家/地區的特定操作(該操作將與該國家/地區名稱相同)
我是Rails的新手,我不確定要閱讀哪些資源來實現此目的,最好有一種方法可以通過這種邏輯,然后在模塊中使用該方法?
a)我建議您不要對您的路線中的每個國家/地區采取行動,因為這確實會使您的route.rb變得混亂。 您可以在路徑中定義通配符和參數,但是只有一個操作可以處理不同的國家/地區。
因此,您可以擁有如下網址:/ world / germany,/ world / france但是它們都應該在控制器中調用相同的動作。
b) link_to
接受2個參數。 首先是要顯示的標題,第二個參數是url。
因此,您可以像這樣鏈接到排名靠前的國家:
<li><%= link_to r.name, country_worldrecipes_path(r) %></li>
現在,您只需要為country_worldrecipes_path定義正確的路由即可。有關路由的更多信息,請參見此處 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.