我正在实现一个名为Rolify的gem。我已经成功地创建了一个控制器和模型方法来为用户分配一个主持人角色。然而,我在播种和测试方面遇到了困难。为了测试,我发布了一个单独的问题。
种子设定的想法是首先在role表中创建角色。然后选取30个随机组织,每个组织2个随机用户,并为这2个用户分配该组织的主持人角色。在我的种子文件的末尾,我添加了:
moderator = Role.create!(:moderator => "moderator")
organizations = Organization.take(30)
organizations.each do |org|
2.times do |n|
user = User.where(usertype: 1).take(1)
user.add_role :moderator, org
end
end
我在角色表中创建角色的种子时遇到的错误:
ActiveRecord::UnknownAttributeError: unknown attribute 'moderator' for Role.
我在第二部分的种子上得到的错误:
NoMethodError: undefined method 'add_role' for #<Array:0x0000000581f268>
Add_role
是rolify的一个方法,也用于我的控制器方法中,它可以工作。
知道是什么导致了这个播种问题吗?
确保将moderator
作为数据库的roles
表中的列之一。
对于第二个错误,行:
user = User.where(usertype: 1).take(1)
正在创建一个用户数组对象,而不是用户。尝试将其更改为:
user = User.where(usertype: 1).first