ruby-on-rails – 如何使用Factory girl创建管理员角色?
发布时间:2020-12-17 02:54:17 所属栏目:百科 来源:网络整理
导读:好的,所以我想测试需要管理员用户的功能,我试图以管理员身份登录,但为了做到这一点,我需要一个管理员用户 这是我的代码 let(:user) { FactoryGirl.create(:user) } let(:admin_role) { FactoryGirl.create(:role) }FactoryGirl.define do factory :user do f
好的,所以我想测试需要管理员用户的功能,我试图以管理员身份登录,但为了做到这一点,我需要一个管理员用户
这是我的代码 let(:user) { FactoryGirl.create(:user) } let(:admin_role) { FactoryGirl.create(:role) } FactoryGirl.define do factory :user do first_name "John" last_name "Doe" email "john@doe.com" end factory :role do name "Admin" end end 我怎么连接他们我试过user.roles<< user_role但是遇到了这个错误 /Users/matt/Sites/application/spec/controllers/directory_controller_spec.rb:16:in `block (3 levels) in <top (required)>': undefined local variable or method `user' for #<Class:0x007fa550890d80> (NameError) 这是我的模特 class User < ActiveRecord::Base has_many :roles,:through => :role_users has_many :role_users ... class Role < ActiveRecord::Base has_many :users,:through => :role_users has_many :role_users ... class RoleUser < ActiveRecord::Base belongs_to :role belongs_to :user end 解决方法
规格/工厂/ user.rb
FactoryGirl.define do factory :user do first_name "John" last_name "Doe" email "john@doe.com" end factory :admin_user,:parent => :user do roles { [ FactoryGirl.create(:admin_role) ] } end factory :role do name { "Role_#{rand(9999)}" } end factory :admin_role,:parent => :role do name "Admin" end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |