0

我在这里遇到了一个我不太明白的问题。导轨 3.1。

我有两个类与 has_many 关系书籍和数据链接:

class Book < ActiveRecord::Base
has_many :data, :dependent => :destroy
end

class Datum < ActiveRecord::Base
belongs_to :books

def file_path
    u = @book.path + '/' + self[:name] + '.' + self[:format]
    return u
end
end

这种关系正常工作,在我看来,我可以正确地从 Datum 类中提取属性。从观点来看:

<% book.data.each do |d| %><%= d.format %><% end %>

这完美地工作。但是当我尝试引用返回路径的方法时,我得到一个未定义的方法错误。

<% book.data.each do |d| %><%= d.file_path %><% end %>

我显然在这里遗漏了一些非常基本的东西......

4

2 回答 2

0

这行得通吗?

def file_path
    u = book.path + '/' + self[:name] + '.' + self[:format]
    return u
end

请注意,我正在使用book而不是@book

于 2012-07-19T08:13:41.713 回答
0

你们的belongs_to关系不对。此外,您无法@book在模型中访问。你的Datum模型应该看起来像

class Datum < ActiveRecord::Base
  belongs_to :book

  def file_path
    return book.path + '/' + self[:name] + '.' + self[:format]
  end
end

由于Datum属于book. bookin模型将引用该Datum数据所属的特定书籍。

于 2012-07-19T08:14:00.933 回答