Ruby on Rails 3을 사용하고 있으며 응용 프로그램 데이터베이스에 데이터를 시드하려고합니다. 'RAILS_ROOT/모델/user.rb'에서Ruby on Rails 3을 사용하여 시드 프로세스 중 검증, 콜백 및 'attr_accessible'효과를 피하는 방법은 무엇입니까?
내가 가진 :
'RAILS_ROOT/DB/seeds.rb'에서class User < ActiveRecord::Base
attr_accessible #none
validates :name,
:presence => true
validates :surname,
:presence => true
validates :email,
:presence => true
end
내가 가진 : 그래서
# Test 1
User.find_or_create_by_email (
:name => "Test1 name",
:surname => "Test1 surname",
:email => "[email protected]"
)
# Test2
User.find_or_create_by_email (
:name => "",
:surname => "",
:email => "[email protected]"
)
, 터미널에서 실행 무기 호 (케이스 Test1을) 및 검증에 'attr_accessible'가 전달되지 때문에 데이터베이스가 datas 채워되지 않습니다 물론
rake db:seed
(케이스 테스트 2).
시드 프로세스 중에 유효성 검사 및 "접근 가능한 영향"을 건너 뛰고 싶습니다.가능합니까? 그렇다면 어떻게해야합니까?
PS : 나는 코드를 다음과 같이 '/ DB/마이그레이션/201 .... RB RAILS_ROOT'에 사용하지 않습니다
execute "INSERT INTO users (name, surname, email) VALUES ("Test1 name", "Test1 surname", "[email protected]")"
UPDATE
에 모든 콜백을 건너 뛰고이 필요합니다. 가능합니까? 그렇다면 어떻게?
I가 또한 필요를 모든 콜백을 건너 뜁니다. 가능한가? – user502052
예. do @user.send : create_without_callbacks' insted of'@ user.save' – tomeduarte
죄송합니다.이 방법은 레일 2에서만 작동합니다. 아직 레일 3에서 사용하지 않았고 내가 찾고있는 것으로부터 사용할 수없는 것 같습니다. – tomeduarte