following error i am getting
And I am exists as a parent # features/step_definitions/kid_steps.rb:106
undefined local variable or method `role' for #<Cucumber::Rails::World:0xc4722f8> (NameError)
./features/step_definitions/event_steps.rb:10:in `create_visitor'
./features/step_definitions/event_steps.rb:14:in `create_user'
./features/step_definitions/kid_steps.rb:107:in `/^I am exists as a parent$/'
features/manage_kids.feature:11:in `And I am exists as a parent'
用户工厂
FactoryGirl.define do
factory :user do
email "user@example.com"
password "test123"
password_confirmation "test123"
end
factory :role do
id "1"
name "admin"
id "2"
name "parent"
id "3"
name "gifter"
end
end </code>
user.rb
def role?(role)
return !!self.roles.find_by_name(role.to_s)
end
ability.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new #user
entities = [Kid, Customer, Event, Contact]
# check if user is 'admin' grant all permissions
if user.role? :admin
can :manage, :all
else
can :manage, entities
end
end
end
#event_steps.rb
def create_visitor
@visitor ||= { :email => "user@example.com",
:password => "test123",
:password_confirmation => "test123",
:role => Role.find_by_name(role.to_s)}
end
我已经尝试了很多方法来自己解决问题,我也用谷歌搜索过,但我无法解决它,而且我对 ruby on rails 和 cucumber 也是新手。如果我错了,请指导我,你的帮助将不胜感激。谢谢