Простая синтаксическая ошибка сводит меня с ума - Ruby on Rails - PullRequest
3 голосов
/ 31 января 2011

Я слежу за приложением Блог с сайта загрузки 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 ]

11 голосов
/ 31 января 2011

У вас есть запятая в конце validates :name, :presence => true в вашем файле post.rb;удали это.

6 голосов
/ 31 января 2011
validates :name,  :presence => true,

должно быть:

validates :name,  :presence => true

(обратите внимание на запятую в конце)

3 голосов
/ 13 мая 2011

Будь первым отступом, но я уже работал хорошо, и если я все равно работал ... оставь код, как я работаю.

Вот код, который я использую:

  class Post < ActiveRecord::Base
      validates:name, :presence=>true
      validates:title,:presence=>true,
               :length=>{:minimum=>5}   
  end
0 голосов
/ 02 сентября 2012

У меня была такая же ошибка некоторое время назад, и я вставил некоторые атрибуты в код, чтобы она была исправлена.

Ваш код должен выглядеть так:

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

Это сработало дляя.

0 голосов
/ 31 января 2011

У вас в конце есть запятая validates :name, :presence => true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...