繁体   English   中英

将方法合并到link_to rails 3

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM