2014-11-13 38 views
0

基本上我有一个有很多活动的表格,每个活动都有一项运动,并且我想链接活动的名称(也就是运动的名称该活动相关联)向记者体育页面,我收到以下错误:查询中未定义的方法`model_name'

undefined method `model_name' for Sport::ActiveRecord_Relation:Class 

这里查看我的错误:

<% @activity.each do |activity| %> 
<tr> 
<td><%= link_to activity.id, activity_path(activity) %></td> 
<td><%= link_to activity.name, searchsport(activity.name) %></td> //error here// 
<td><%= activity.ambiente %></td> 
<td><%= activity.resume %></td> 
<td><%= activity.duration %></td> 

我在控制器上的这个助手方法:

helper_method :searchsport 
    def searchsport(name) 
    Sport.where(:name => name) 
    end 

体育表:

create_table "sports", force: true do |t| 
    t.string "name" 
    t.string "description" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    end 

回答

1

您可以通过以下方式

link_to "Profile", profile_path(@profile) 
link_to "Profile", @profile 
link_to "Profile", controller: "profiles", action: "show", id: @profile 

使用link_to所以,要么需要url, or an active record object or a hash。你给的是一个ActiveRecord::Relation对象。所以你必须改变你的helper方法返回一个对象像下面

helper_method :searchsport 
    def searchsport(name) 
    Sport.where(:name => name).first 
    end 
+0

谢谢!有效 – MMrj

1

的问题是方法searchsport返回结果数组修改它来获得一个记录。

def searchsport(name) 
Sport.find_by_name(name) 
end 
相关问题