我有两个模型 - Users和Roles。它们的关联如下:
在用户.rb
...
has_and_belongs_to_many :roles
...
在角色.rb
...
has_and_belongs_to_many :users
...
因此,一个用户可以有多个角色,一个角色可以与多个用户相关联。
为了设置角色的默认值(因为每个用户都应该至少创建一个角色),我在我的seed.rb文件中添加了以下代码并运行db:seed命令:
roles = [
Admin: 'test',
Student: 'test'
]
roles.each do |role, description|
SecurityUsersRole.find_or_create_by_role_and_description(role,description)
end
角色已创建,但我无法销毁它们 - 这是返回的错误消息:
ActiveRecord::StatementInvalid 在 /security_users_roles/2
ActiveRecord::JDBCError: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704,
SQLERRMC=DB2INST1.SECURITY_USERS_SECURITY_USERS_ROLES, DRIVER=3.65.77:
SELECT security_users.*
FROM security_users
INNER JOIN security_users_security_users_roles
ON security_users.id = security_users_security_users_roles.security_user_id
WHERE security_users_security_users_roles.security_users_role_id = 2
上面的语句不应该返回任何记录,因为我还没有创建任何用户,并将它们与角色相关联。
谁能告诉我做错了什么?