##概要
複数の父親を持つ複雑な家庭環境を表現してみましょう。
(本来こんなことで使わないでしょうが、いろいろこれ用に書き換えてたらこうなりました…
この場合、普通に"dad"はChildのカラムとして使うことならありそうかな…テーブル分ける必要はゼロですね。)
##環境
Rails5.1
jquery3.3.1
mysql
###データベース
親
Father
id | dad |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
子
Child
id | name | father_id |
---|---|---|
1 | hoge | 1 |
2 | fuga | 1 |
3 | hogehoge | 2 |
4 | hiroshi | 2 |
(母:マダム)
##コード
father(単数)ー children(複数)
の関係です。
子モデル設定▼
models/child.rb
class Child < ApplicationRecord
belongs_to :father
end
親モデル設定▼
models/faher.rb
class Father < ApplicationRecord
has_many :children
enum fathers: {dad_1: 0,dad_2: 1,dad_3: 2}
end
フォーム部分でも表示される変換後の内容▼
config/locale/ja.yml
ja:
children:
fathers:
dad_1: '最初のお父さん'
dad_2: '今のお父さん'
dad_3: '未来のお父さん'
コントローラーはテキトー設定をして
…
フォーム部分▼
view/form.rb
= form_for(@child, url: hoge, html: {method: :post}) do |f|
= f.text_field :name, placeholder: "new_baby"
= f.select :father, Child.fathers.map{
|k, v| [t("children.father.#{k}"), v]
}, prompt: "—"
はい、
これで末っ子のヒロシくんの次に生まれてくるとしたら誰の子なのかはっきりしますね笑
(実際はみんな一人目の子供みたいですね。
てかこのために調べたら4人兄弟とか、某大企業元代表の子って、知らなかったです。)
冒頭でも書いているように使用する場面は違うでしょうが、覚書程度に使い方の復習メモです。
※この内容はフィクションです。実在の人物や団体などとは関係ありません。
勉強中の身のため、
ご指摘等あればコメントにてお願いいたします。