link_to与继承的Active Record类发生问题

时间:2009-11-20 21:31:19

标签: ruby-on-rails inheritance activerecord

以下是我设置的课程:

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

对于统计控制器索引操作:

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

1 个答案:

答案 0 :(得分:3)

那里显然存在STI(单表继承)问题,但我需要查看更多代码才能看到真正的问题。快速解决方法是更具体地关于link_to路径:

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