初心者なのですがRailsアプリケーションプログラミングの学習をしながら制作しています。
banksテーブルにデータが登録されているかいないかで表示を切り替えたいのですが記述方法がわかりません。
やりたいこと
たとえば佐藤さんがログインに成功したとき、banksテーブルにすでにデータが未登録の場合は dashboard_a.html.erb を表示させ
データが登録済みの場合は dashboard_b.html.erb を表示するように切り替えたい。
条件式 if と elsif のあとの条件式を同記述すれば上手く切り替えて表示されるのかわからずに困っております。
app/controllers/customer/top_controller.rb class Customer::TopController < Customer::Base skip_before_action :authorize def index if current_customer ここに何を記述すればいいのでしょうか? render action: 'dashboard_a' elsif current_customer ここに何を記述すればいいのでしょうか? render action: 'dashboard_b' else render action: 'index' end end end
app/views/customer/top/dashboard_a.html.erb <% @title = 'ダッシュボード' %> <h1><%= @title %></h1> <ul class="menu"> <li><%= link_to 'プログラム一覧', :customer_programs %></li> <li><%= link_to '受信メッセージ一覧', :customer_messages %></li> <li><%= link_to '入金口座登録', :new_customer_bank %></li> </ul>
app/views/customer/top/dashboard_b.html.erb <% @title = 'ダッシュボード' %> <h1><%= @title %></h1> <ul class="menu"> <li><%= link_to 'プログラム一覧', :customer_programs %></li> <li><%= link_to '受信メッセージ一覧', :customer_messages %></li> <li><%= link_to '口座アカウント編集', :edit_customer_bank %></li> </ul>
どなたか教えていただけないでしょうか?宜しくお願いします。
追記
bank_idがないためエラーが出てしまいました。
NoMethodError in Customer::TopController#index undefined method `bank_id' for nil:NilClass Extracted source (around line #5): 4 def index 5 if Bank.find(current_customer.bank_id) 6 render action: 'dashboard_a' 7 else 8 render action: 'dashboard_b'
モデルの関連付けは以下のようになっています。
customersテーブルが参照先
banksテーブルが参照元で外部キーcustomer_idカラムがあります。
banksテーブルのカラムは
・customer_id
・bk_name (銀行名)
・office (支店名)
・account (口座番号)
・acc_name (口座名義)
・acc_name_kana (口座名義 フリガナ)
の5つです。
この状態でbanksテーブルに存在の有無を確認するにはどうしたらいいのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。