Проверка Rails не проходит даже при вводе данных - PullRequest
1 голос
/ 24 мая 2011

Вот команда, которую я выполняю в консоли Rails:

Person.create!(:firstName=>"matt", :lastName=>"master", :gender => 1)

Мой результат - это сообщение об ошибке:

ActiveRecord::RecordInvalid: Validation failed: Firstname can't be blank

Код проверки моей модели выглядит так:

class Person < ActiveRecord::Base
belongs_to :user, :class_name => 'User', :foreign_key => 'fk_ssmUserId'
validates_presence_of :firstName, :lastName

Когда я закомментирую validates_presence_of, все работает, и мои данные правильно вводятся в базу данных, поэтому я знаю, что значения фактически передаются в новый объект.Я даже проверил новый объект, созданный в коде Rails :: ActiveRecord :: Validations, чтобы убедиться, что он был правильно создан перед сохранением.Это было.Кроме того, у меня есть другие модели с validates_presence_of, которые работают на 100% каждый раз.Это просто одна модель.Я использую Rails 3.1.0.rc1.

Есть идеи?
Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 мая 2011

У меня есть подозрение, что эта ошибка связана с тем, что вы создаете и сохраняете объект, используя .create! метод с консоли , Классу Person требуется внешний ключ, значение которого, вероятно, не создается при создании объекта на консоли. Чтобы проверить это, попробуйте набрать:

test = Person.create(:firstName=>"matt", :lastName=>"master", :gender => 1)

без взрыва после метода .create. Это не должно генерировать ошибку. Теперь наберите:

test

Весьма вероятно, что вам потребовались значения ключей, заданные как "nil", и что объект нельзя сохранить из консоли, пока вы не введете соответствующие значения.

0 голосов
/ 24 мая 2011
:firstName=>"matt", :lastName=>"master", :gender => 1

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

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