次のテーブルがあります
keyword
keyword_id - PK
description
status_id - FK
keyword_status
status_id - PK
description
それらをARでモデル化しようとしていますが、テストで保存しようとすると、ステータスIDがキーワードに保存されません。それらは次のようにマッピングされます。
class Keyword < ActiveRecord::Base
self.table_name = :keyword
self.primary_key = :KEYWORD_ID
attr_writer :description
attr_writer :keyword_status
has_one :keyword_status, foreign_key: :STATUS_ID
end
class KeywordStatus < ActiveRecord::Base
self.table_name = :keyword_status
self.primary_key = :STATUS_ID
end
およびそれが壊れたコード (キーワードのステータスはフィクスチャによって入力されます)
keyword = Keyword.new
keyword.description = "keyword#{n}"
keyword.keyword_status = KeywordStatus.first
keyword.save
がkeyword.save
呼び出されると、テーブル キーワードの 'STATUS_ID' に NULL を挿入できません
注: DDL を変更することはできません