0

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:NilClass 的未定义方法“文本”

看起来“文本”是 Rails 中的保留字。我的猜测是,这会阻止 rails 对其进行正确评估。

我对错误的解释正确吗?如果是这样,我怎样才能让 Rails 为“文本”字段赋予不同的名称,如“comment_text”?

非常感谢您提前提供的帮助。

PS 我已经看过http://www.engineyard.com/blog/2011/using-datamapper-and-rails-with-legacy-schemas/,但我不确定我的问题是否与此类似。

4

1 回答 1

1

改变这个:

def get_summary
   @comment.text
end

对此:

def get_summary
    comment.text
end

@comment在这个模型中没有意义......你正在访问一个关联,它是comment

于 2012-08-01T03:06:29.800 回答