Rails新手在这里。
我有一个遗留的sqlite3数据库,我无法控制使用带有以下列的Comments表:
ID - 主键
BOOK - 外键
TEXT - 包含评论和书籍摘要的字段
我有一个名为Comment的Rails 3.2.1模型(使用Book映射1-1),如下所示:
class Book < ActiveRecord::Base
has_many :datum, :foreign_key => "book"
has_one :comment, :foreign_key => "book"
@@basepath = "#{Rails.root}/public/share"
def get_filepath
return "#{@@basepath}/#{path}"
end
def get_summary
@comment.text
end
end
在我看来,我有这样的事情:
<td><%= book.get_summary %></td>
但是,当我尝试该页面时,我明白了 nil的未定义方法`text':NilClass
看起来“text”是Rails中的保留字。我猜测这是阻止铁路正确评估它。
我对错误的解释是否正确?如果是这样,我如何让Rails给“text”字段一个不同的名称,如“comment_text”?
非常感谢您的帮助。
P.S。我已经查看了http://www.engineyard.com/blog/2011/using-datamapper-and-rails-with-legacy-schemas/,但我不确定我的问题是否与此类似。
答案 0 :(得分:1)
改变这个:
def get_summary
@comment.text
end
对此:
def get_summary
comment.text
end
@comment
在此模型中没有意义...您正在访问某个关联,它是comment