環境
- ruby 2.5
- rails 5.1
やりたいこと
AとBのモデルがあり、BはAにリレーション関係にあります。
Bのインスタンスをnewすると以下のようになるとします。
pry> b = B.new id a_id created_at updated_at
やりたいこととしては、このa_id
に値を追加したいのですが、なぜか出来ないです。
pryコンソールで以下のように試してみました。
pry> b = B.new(a_id: 1) id: nil a_id: nil created_at: nil updated_at: nil
インスタンス生成時に引数に含んでも代入がされません。
しかし、以下のようにしてみると、値は代入されているようにも見えました。
pry> b.a_id 1
これで入っていたのかと思い、再度b変数を見てみると値はnilになっている
pry> b id: nil a_id: nil created_at: nil updated_at: nil // しかし以下のようにすると値が返ってくる pry> b.a_id 1
外部キーカラムへ値を代入出来ないということはないかと思うのですが、インスタンス変数の特定のキーへ値を代入出来なくする方法などあるのでしょうか?
原因究明に助力いただけますと幸いです
追記
解決とまではいきませんが、なんとか代入することは出来ました。
pry> a[:a_id] = 1
のようにすると実現が出来ました。
回答1件
あなたの回答
tips
プレビュー