我正在使用 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 => "[email protected]"
)
# Test2
User.find_or_create_by_email (
:name => "",
:surname => "",
:email => "[email protected]"
)
所以,在终端中运行
rake db:seed
当然,数据库不会填充数据,因为“attr_accessible”为零(案例测试1)并且验证未通过(案例测试2)。
我想在播种过程中跳过验证和“attr 可访问的效果”。 是否可以?如果是这样,该怎么做?
P.S.:我不想在“RAILS_ROOT/db/migrate/201....rb”代码中使用如下所示:
execute "INSERT INTO users ( name, surname, email ) VALUES ( "Test1 name", "Test1 surname", "[email protected]")"
UPDATE
我还需要跳过所有回调. 是否可以?如果是这样,怎么办?