2014-11-13 72 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 
相關問題