У меня есть три модели :request
, :access_account
и :permission
.
class Request < ApplicationRecord
has_many :access_account_requests
has_many :access_accounts, through: :access_account_requests
end
class AccessAccount < ApplicationRecord
has_many :permissions
has_many :access_account_requests
has_many :requests, through: :access_account_requests
end
class Permission < ApplicationRecord
belongs_to :access_account
has_and_belongs_to_many :access_account_requests_permissions
end
A :request
и :access_account
связаны через модель :access_account_request
, так как запрос может иметь много :access_accounts
, а access_account может иметь много :requests
.
class AccessAccountRequest < ApplicationRecord
belongs_to :access_account
belongs_to :request
has_and_belongs_to_many :access_account_requests_permissions
end
Я присоединился к :request
и :access_account
таким образом, потому что думал как-то соединить :access_account_request
с :permission
, чтобы определить спецификацию c :permissions
для каждого :access_account_request
. Например:
class AccessAccountRequestPermission < ApplicationRecord
belongs_to :access_account_request
belongs_to :permission
end
Пользователь может создать :request
, чтобы получить доступ к нескольким :access_accounts
с несколькими :permissions
. Поэтому мне нужно создать форму для :request
, где я смогу выбрать несколько :access_accounts
, а затем выбрать несколько :permissions
, связанных с каждым :access_account
.
Я думал о коконе и попробуйте collection_check_boxes или, возможно, многошаговую форму.
Пожалуйста, сообщите, если есть какой-то лучший способ спроектировать отношения между моделями или как я мог бы go об этом, чтобы создать довольно простую форму.