0

私は Ruby on Rails を初めて使用し、Railstutorial に従って Scaffold を使用してデモ アプリを作成していました。

まず、足場を使用して User モデルを追加すると、正常に機能しました。次に、マイクロポスト モデルを追加すると、次のエラーが発生し続けました。

/demo_app/app/models/micropost.rb:4: syntax error, unexpected ':', expecting keyword_end
  belongs_to: user

scaffold によって生成されたコードが、チュートリアルに示されているものと同じコードを生成していないことに気付きました。ユーザーとマイクロポストのモデルは次のとおりです。

class User < ActiveRecord::Base
  attr_accessible :email, :name
  has_many :microposts
end

class Micropost < ActiveRecord::Base
  attr_accessible :content, :user_id

  belongs_to: user

  validates :content, :length => { :maximum => 140 }
end

このattr_accessible行はチュートリアルにはありません。これは正確には何ですか?これが問題ですか?私はRakeプログラムと言及された他のすべてを実行しました。

4

2 に答える 2

2

である必要がありますbelongs_to :user。レールのハイライト付きのテキストエディターを使用することをお勧めします

于 2012-08-28T21:39:58.667 に答える
1

エラー メッセージには、知っておくべきことがすべて記載されています。

  • micropost.rb の 4 行目を見てください。
  • 「:」を検索

belongs_to :userの代わりにする必要がありますbelongs_to: user

于 2012-08-28T21:38:55.403 に答える