我在这里遇到一些问题,我不太明白。 Rails 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 %>
我显然在这里遗漏了一些非常基本的东西......
答案 0 :(得分:0)
这有用吗?
def file_path
u = book.path + '/' + self[:name] + '.' + self[:format]
return u
end
请注意,我使用book
代替@book
答案 1 :(得分: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
。 book
模型中的Datum
将引用此数据所属的特定图书。