前提・実現したいこと
Ruby on Railsでアプリを開発中です。
グループ(今回familyとしています)を作成し、その中でフロントのサイドバーにグループ中のメンバーの名前を表示させて、クリックすると各々のページを右側(メイン)に表示するようにしたいのですが以下のエラーがでてしまいます。
まだメインページの中身は実装していませんが、ビューのみ作成済です。
グループの中の人がいる場合に、グループのメンバーを並べる方法を
ご教授願います。
※初心者です。かなり荒削り、意味不明なコードになっているかもしれないです。
大変恐縮ですがどうかよろしくお願いします。
発生している問題・エラーメッセージ
NoMethodError in Families#index Showing /Users/xxxxxx/temp-management/app/views/records/_side_bar.html.haml where line #15 raised: undefined method `users' for nil:NilClass
該当のソースコード
Ruby
1.chat-side 2 .side-header 3 .side-header__box 4 %p.side-header__box__user-name 5 = current_user.name 6 %ul.side-header__box__name__menu 7 %li.side-header__box__name__new-family 8 = link_to new_family_path do 9 = icon('fas', 'edit', class: 'icon') 10 %li.side-header__box__name__edit-user 11 = link_to edit_user_path(current_user) do 12 = icon('fas', 'cog', class: 'icon') 13 14 .families 15 - @family.users.each do |user| 16 = link_to '#' do 17 .family 18 .family__name 19 = user.name 20 .family__message 21 %p 22 bbbbb
補足情報(FW/ツールのバージョンなど)
・Rails 5.0.7.2
・ruby 2.5.1p57
families_controller.rb
Ryby
1class FamiliesController < ApplicationController 2 def index 3 end 4 5 def new 6 @family = Family.new 7 @family.users << current_user 8 end 9 10 def create 11 @family = Family.new(family_params) 12 if @family.save 13 redirect_to root_path, notice: 'グループを作成しました' 14 else 15 render :new 16 end 17 end 18 19 def edit 20 @family = Family.find(params[:id]) 21 end 22 23 def update 24 @family = Family.find(params[:id]) 25 if @family.update(family_params) 26 redirect_to root_path, notice: 'グループを更新しました' 27 else 28 render :edit 29 end 30 end 31 32 33 private 34 def family_params 35 params.require(:family).permit(:name, user_ids: []) 36 end 37end
他に必要なコードがございましたら、すぐ掲載しますのでお教えください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/03 06:38 編集
2020/05/03 06:39
2020/05/03 06:41
2020/05/03 06:46
2020/05/03 06:51