family に属する tama, pochi, ichiro, yokoは表示できるのですが、 familyに属さない人全員の名前を表示したいです。どうすれば良いですか?
familyに属さないpersonを@hogeの中に入れて、view側で@hogeをeach文で@hoge.nameとして全員表示したいです。
controller
1def show 2 @family = Family.find(params[:id]) 3 @persons = @family.persons 4 5 @hoge = FamilyPerson.where.not(family_id: paramsp[:id]) 6 7end
view
1<% @pserns.each do | person | %> 2 <%= person.name %> 3<% end %> 4 5<% @hoge.each do | person | %> 6 <%= person.name %> 7<% end %>
なんかエラー出てます?
paramspになっているからというオチはないですよね?
すみません。paramspは書き間違えでvscodeの方のコードは大丈夫です。
@hoge = FamilyPerson.where.not(family_id: params[:id])
では中間テーブルにあるfamily_idカラムのあたいは取れますが、その後、取得した値を頼りにperson.nameをviewに表示したいのですが、コードがわかりません。
中間テーブルのモデル名は何ですか?
ちょっと全体像が見えてないので。
family_person.rb
class FamilyPerson < ApplicationRecord
belongs_to :person
belongs_to :family
end
です!!
情報不足ですみません。
family_personのカラム名は何があるのですか?
id,
person_id,
family_id,
created_at,
updated_at です
何度もすみません、ということはfamily.nameとperson.nameが存在してpersonには全員、familyはファミリーが入っているという解釈で合ってますか?
family モデルには、nameカラムがあり、 person モデルにも nameカラムがあります。
上記のカラム以外にカラムはありません。
回答1件
あなたの回答
tips
プレビュー