UsersとRolesの 2 つのモデルがあります。それらは次のように関連付けられています。
user.rb内
...
has_and_belongs_to_many :roles
...
role.rb内
...
has_and_belongs_to_many :users
...
したがって、ユーザーは多くの役割を持つことができ、役割は多くのユーザーに関連付けることができます。
ロールのデフォルト値を設定するために (各ユーザーには少なくとも 1 つのロールを作成する必要があるため)、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 at /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
まだユーザーを作成しておらず、ロールに関連付けていないため、上記のステートメントはレコードを返さないはずです。
誰が私が間違っているのか教えてもらえますか?