テストアプリを作成していて、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たが、うまくいきません。
前もって感謝します。