0
質問は本当に簡単です。 、私のスキーマを見てみてください。before_actionとモデルのネストされた属性
class Parent < ApplicationRecord
has_one :item
accepts_nested_attributes_for :item
before_create :set_something
def set_something
self.item.build
end
end
と
class Item < ApplicationRecord
belongs_to :parent
end
質問は:親を作成するときに、なぜそれをしない
ActiveRecord::Schema.define(version: 20170812094528) do
create_table "items", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "parent_id"
end
create_table "parents", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "item_id"
end
end
これは、モデルがどのように見えるかです次のエラーが発生しますか?
undefined method `build' for nil:NilClass
親を作成すると同時にアイテムレコードを追加できるように設定するにはどうすればよいですか?
それはそれです!どうもありがとうございました! 「アイテム」テーブルでは、新しいレコードに適切な「user_id」値が追加されます。もう1つの質問です: "親"テーブルで、私の新しいレコードはitem_id = nill値です。私は "parent"テーブルでこのitem_idカラムが必要なのか不思議です。どう思いますか?この問題を解決する簡単な方法はありますか? – Kaczor
なぜ親テーブルにitem_idが必要です アイテムオブジェクトを使用して親オブジェクトを取得することができます @ Item.parent –