Mat*_*iby 4 ruby rspec ruby-on-rails ruby-on-rails-3 factory-bot
好的,所以我想测试需要管理员用户的功能,我试图以管理员身份登录,但为了做到这一点,我需要一个管理员用户
这是我的代码
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
Run Code Online (Sandbox Code Playgroud)
我怎么连接他们我试过 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)
Run Code Online (Sandbox Code Playgroud)
这是我的模特
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
Run Code Online (Sandbox Code Playgroud)
spec/factories/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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2638 次 |
| 最近记录: |