Ruby on Rails使用scaffold演示应用程序语法错误

时间:2012-08-28 21:35:56

标签: ruby-on-rails ruby ruby-on-rails-3 railstutorial.org

我是Ruby on Rails的新手,我正在按照Railstutorial使用Scaffold制作一个演示应用程序。

首先,当我使用脚手架添加用户模型时,它工作正常。然后,当我添加微博模型时,我不断收到以下错误:

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

我注意到scaffold生成的代码没有生成与教程中显示的代码相同的代码。这是User和Microposts模型:

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程序和其他所有提到的内容。

2 个答案:

答案 0 :(得分:2)

应该是belongs_to :user。你最好使用一些带有高亮显示功能的te​​xteditor

答案 1 :(得分:1)

错误消息显示您需要知道的任何内容。

  • 查看micropost.rb的第4行
  • 搜索':'

应该是belongs_to :user而不是belongs_to: user