В настоящее время я пытаюсь настроить авторизацию CanCanCan для дочерней модели на основе атрибутов родительских моделей, но я не могу заставить ее работать.Мне нужно что-то вроде следующего:
can(:create, Bid) { |b| b.request.status == :open }
Так что в моей ситуации у запроса может быть много предложений, но вы можете создавать предложения только тогда, когда запрос еще открыт для торгов.
Проблема в том, что экземпляр Bid всегда будет иметь запрос nil
.
Я заметил, что авторизация запускается раньше, чем контроллер, поэтому он использует мой bid_params
до того, как я выполню @bid = @request.bids.build(bid_params)
в контроллере.
Я пытался использовать load_and_authorize_resource :bid, through: :request
, но это не помогло.
Что я делаю не так?