0

Rails初心者はこちら。

次の列を持つコメントテーブルでは制御できないレガシーsqlite3データベースがあります。

ID-主キー

BOOK-外部キー

TEXT-コメントと本の要約を含むフィールド

私は以下のようなComment(Bookで1-1にマッピングされた)と呼ばれるRails3.2.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の未定義のメソッド`text'が表示されます

「テキスト」はRailsの予約語のようです。私の推測では、これはレールがそれを適切に評価するのを妨げていると思います。

エラーの私の解釈は正しいですか?もしそうなら、どうすればRailsに「text」フィールドに「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 に答える