我正在构建一个测试应用程序并遇到了 Faker gem 的问题:
我已经使用 Devise 创建了 Use 模型并使用 Rolify gem 创建角色,然后将使用 CanCan 来限制用户的使用权限。
因此,我使用 Faker 为我的 rake 任务创建了一个文件:
namespace :db do
desc "Fill dummy DB"
task :populate => :environment do
require "populator"
require "faker"
password = "password"
User.populate 198 do |user|
user.firstname = Faker::Name.first_name
user.lastname = Faker::Name.last_name
user.email = Faker::Internet.email
user.encrypted_password = User.new(:password => password).encrypted_password
user.phone = Faker::PhoneNumber.phone_number
user.address1 = Faker::Address.street_address
user.city = Faker::Address.city
user.state = Faker::Address.state_abbr
user.zip = Faker::Address.zip_code
user.latitude = Faker::Address.latitude
user.longitude = Faker::Address.longitude
end
end
end
这段代码有效,它创建了 198 个虚拟用户......但是当我查看我的 users_roles 表时 - 那里什么都没有,用户没有分配给他们的角色。我一直在试图弄清楚如何通过 Faker 为用户分配角色,但没有运气。
我试过添加user.role_id = User.add_role :user
,但没有运气。
先感谢您。