2009-11-20 43 views
2

下面的link_to問題是類,因爲我有他們設置:與繼承的Active Record

class Stat < ActiveRecord::Base 
    belongs_to :stats_parent 
end 

class TotalStat < Stat 
    belongs_to :stats_parent 
end 

#The StatsParent class is just to show how I use the relation. 
class StatsParent < ActiveRecord::Base 
    has_one :total_stat 
    has_many :stats 
end 

對於統計控制器index操作:

def index 
    @stats = Stat.all 
    respond_to do |format| 
     format.html # index.html.erb 
     format.xml { render :xml => @stat } 
    end 
end 

在索引視圖統計數據有這段代碼:

<% @stats.each do |stat| %> 
    ... 
    <td><%= link_to 'Show', stat %></td> 
<% end %> 

而且我得到這個錯誤:

undefined method `total_stat_path' for #<ActionView::Base:0x0000010324c1f8> 

爲什麼不能link_to在這裏工作?我是否需要創建一個單獨的控制器來處理TotalStat

回答

3

那裏明顯存在STI(單表繼承)問題,但我需要查看更多代碼才能看到真正的問題。快速修復將更具體的link_to路徑:

<%= link_to "Show", stat_path(stat) %> 
+0

方法stat_path()生成某處。你能指出我的任何文檔描述這樣的方法是爲我生成的嗎? – lillq 2009-11-20 22:49:07

+0

當你使用map.resources創建一個資源路徑時,你可以免費得到一堆路線。查看路由指南中的第3節,以更好地理解您從RESTful資源獲得的路由方法:http://guides.rubyonrails.org/routing.html#restful-routing-the-rails-default – bensie 2009-11-20 23:02:41