Мое действие уничтожения выдает эту ошибку:
Failure/Error: Deal.delete(params[:id])
ActiveRecord::InvalidForeignKey:
PG::ForeignKeyViolation: ERROR: update or delete on table "deals" violates foreign key constraint "fk_rails_cc6e075aca" on table "origin_airports"
Акция:
def destroy
Deal.delete(params[:id])
redirect_to deals_path
end
Я нашел ответы об этом (например, this ) и скорректировал свой класс Deal
таким образом:
has_many :origin_airports, dependent: :destroy
has_many :origins, through: :origin_airports, source: :airport
Но я все еще получаю ту же ошибку.
PS. Ответ на пост, упомянутый выше, гласит: «Тем не менее, лучший способ обеспечить целостность данных - установить CASCADE DELETE на уровне базы данных». Я хотел бы знать, как это сделать.
Спасибо всем.