将方法合并到link_to rails 3中

时间:2012-12-12 11:40:40

标签: ruby-on-rails ruby-on-rails-3 methods hyperlink

我正在构建一个简单的食谱应用程序。我有一个按最流行的顺序返回国家/地区列表的方法

 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的新手我不知道要实现这个目的的资源是什么,最好有一个方法来完成这个逻辑,然后在块中使用该方法?

1 个答案:

答案 0 :(得分:1)

a)我建议你不要在你的路线上对每个国家采取行动,因为这会使你的路线变得混乱。您可以将通配符和参数定义为路线的一部分,但只有一个操作可以处理不同的国家/地区。

所以你可以拥有这样的网址:/ world / germany,/ world / france 但是他们都应该在你的控制器中调用相同的动作。

b)link_to需要2个参数。首先是要显示的标题,第二个参数是url。

所以你可以链接到这样排名靠前的国家:

<li><%= link_to r.name, country_worldrecipes_path(r) %></li>

现在您只需要为country_worldrecipes_path定义正确的路由 有关路由look here的更多信息。