简单的语法错误让我疯狂 - Ruby on Rails

时间:2011-01-31 19:08:09

标签: ruby-on-rails

我正在关注RoR下载网站上的博客应用。教程说输入此代码以获得一些验证:

class Post < ActiveRecord::Base
  validates :name,  :presence => true
  validates :title, :presence => true,
                    :length => { :minimum => 5 }
end

我的副本中有这个:

class Post < ActiveRecord::Base 
validates :name,  :presence => true,
validates :title,  :presence => true,
         :length =>  {  :minimum => 5  }

end

据我所知,这是正确的,但是当我运行页面时,我收到这些错误消息:

c:/Sites/blog/app/models/post.rb:3: syntax error, unexpected tSYMBEG, expecting kDO or '{' or '('
validates :Title,  :presence => true,
           ^
C:/Sites/blog/app/models/post.rb:3: Can't assign to true
C:/Sites/blog/app/models/post.rb:4: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
         :length =>  {  :minimum => 5  }

有谁可以指出我做错了什么?对我来说似乎完全一样。

5 个答案:

答案 0 :(得分:11)

validates :name, :presence => true文件中的post.rb末尾有一个逗号;删除它。

答案 1 :(得分:6)

validates :name,  :presence => true,

应该是:

validates :name,  :presence => true

(注意最后删除的逗号)

答案 2 :(得分:3)

是第一次缩进,但我已经跑好了,如果我还是工作的话......在我工作的时候留下代码。

以下是我使用的代码:

  class Post < ActiveRecord::Base
      validates:name, :presence=>true
      validates:title,:presence=>true,
               :length=>{:minimum=>5}   
  end

答案 3 :(得分:0)

您在validates :name, :presence => true行上有一个逗号逗号。

答案 4 :(得分:0)

前一段时间我遇到了同样的错误,我在代码中添加了一些属性,以便修复它。

您的代码必须如下:

class Post < ActiveRecord::Base 
  attr_accessible :content, :name, :title
  validates name, :presence => true
  validates :title, :presence => true, length => { :minimum => 5 }
end

它对我有用。