У меня есть две модели. Первый из них:Внешнего ключа не существует при удалении зависимых записей
class Keyword < ActiveRecord::Base
has_many :words, dependent: :delete_all
end
Второе:
class Word < ActiveRecord::Base
end
Мои Миграции:
class Keywords < ActiveRecord::Migration
def change
create_table :keywords do |t|
t.string :name, null: false, unique: true
t.string :description, null: false
t.string :keys, null: false
t.timestamps null: false
end
end
end
И для слов:
class Words < ActiveRecord::Migration
def change
create_table :words do |t|
t.belongs_to :keyword
t.string :name, null: false
t.timestamps null: false
end
end
end
Когда я пытаюсь удалить экземпляр ключевых слов Rails выбрасывает мычание исключение:
PG::UndefinedColumn: ERROR: column words.keyword_id does not exist LINE 1: DELETE FROM "words" WHERE "words"."keyword_id" = $1^: DELETE FROM "words" WHERE "words"."keyword_id" = $1
Так что мой вопрос, почему Rails создал keyword_id
ссылку на таблицу вместо использования keywords_id
? И как это исправить.
Он должен создать столбец «keyword_id». Как вы пытаетесь удалить запись? – BroiSatse
Через ссылку, на мой взгляд: <% = link_to "удалить", установить, метод:: удалить, данные: {подтвердить: "Вы уверены?" }%> –
Можете ли вы показать действие контроллера? Кроме того, что такое 'set' - это экземпляр« Keyword »? – BroiSatse