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/seeds.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)ため、データベースにはデータが入力されません。
シードプロセス中の検証と「attr-accessibleエフェクト」をスキップしたいと思います。 出来ますか?もしそうなら、それを行う方法は?
PS:次のような「RAILS_ROOT / db / migrate / 201....rb」コードでは使用したくありません。
execute "INSERT INTO users ( name, surname, email ) VALUES ( "Test1 name", "Test1 surname", "test1@test1.test1")"
アップデート
また、すべてのコールバックをスキップする必要があります。出来ますか?もしそうなら、どのように?