Я использую Ruby on Rails 3 и пытаюсь заполнить данные в своей базе данных приложения.
В 'RAILS_ROOT / models / user.rb' у меня есть:
class User < ActiveRecord::Base
attr_accessible #none
validates :name,
:presence => true
validates :surname,
:presence => true
validates :email,
:presence => true
end
В 'RAILS_ROOT / db / seed.rb' у меня есть:
# Test 1
User.find_or_create_by_email (
:name => "Test1 name",
:surname => "Test1 surname",
:email => "test1@test1.test1"
)
# Test2
User.find_or_create_by_email (
:name => "",
:surname => "",
:email => "test2@test2.test2"
)
Итак, работает в Терминале
rake db:seed
конечно, база данных НЕ будет заполняться данными, потому что 'attr_accessible' в nil (Case Test1) и проверка не пройдена (Case Test2).
Я бы хотел пропустить валидацию и "доступные для атрибута эффекты" во время процесса посева. Возможно ли это? Если да, то как это сделать?
P.S .: Я не хочу использовать в коде 'RAILS_ROOT / db / migrate / 201 .... rb' вот так:
execute "INSERT INTO users ( name, surname, email ) VALUES ( "Test1 name", "Test1 surname", "test1@test1.test1")"
UPDATE
Мне нужно также пропустить все обратные вызовы . Возможно ли это? Если да, то как?