前提・実現したいこと
vscodeで基本的な7つのアクション(index,new,create,show,edit,update,destroy)とログイン機能を使用したwebアプリケーションを作成しています。
途中まで動作確認はできていたのですが、どこからかわからないのですが、下記の様なエラーが発生して困っています。
発生している問題・エラーメッセージ
NoMethodError と表示されてしまう
該当のソースコード
<div class="side-bar"> <div class="side-bar__in"> <% if user_signed_in? %> <div class="side-bar__in--up"> <ul> <li><%= link_to "ログアウト", destroy_user_session_path, method: :delete, class:"btn-flat-border"%></li> <li><%= link_to '新規投稿',new_task_path, class:"btn-flat-border__orange"%></li> </ul> </div> <% elsif %> <div class="side-bar__in--up"> <ul> <li><%= link_to "ログイン", new_user_session_path, class: "btn-flat-border" %></li> <li><%= link_to "新規登録", new_user_registration_path, class: "btn-flat-border" %></li> </li> </ul> </div> <% end %> </div> </div>
ruby
1class TasksController < ApplicationController 2 before_action :move_to_index, except: [:index, :show] 3 4 def index 5 @tasks = Task.all 6 end 7 8 def new 9 @task = Task.new 10 end 11 12 def create 13 @task = Task.new(task_params) 14 15 if @task.save 16 redirect_to @task 17 else 18 render :new 19 end 20 end 21 22 def show 23 @task = Task.find(params[:id]) 24 end 25 26 def edit 27 @task = Task.find(params[:id]) 28 end 29 30 def update 31 @task = Task.find(params[:id]) 32 @task.update(task_params) 33 redirect_to @task 34 end 35 36 def destroy 37 task = Task.find(params[:id]) 38 task.destroy 39 redirect_to root_path 40 end 41 42 43private 44 def task_params 45 params.require(:task).permit(:submitter, :recipient,:date_of_receipt,:department,:device,:model_number,:serial_number,:failure_content,:correspondence,:note,:status).merge(user_id: current_user.id) 46 end 47 48 def move_to_index 49 unless user_signed_in? 50 redirect_to action: :index 51 end 52 end 53end
試したこと
エラーメッセージを見るにTasksコントローラにindexアクションがないと記載されていると思うのですが、しっかりと記載されているはずであるのにエラーが起きてしまいます。
ためしにside-barからif user_signed_in?以下を全削除するとエラーなくTasks#indexへアクセスは可能でした。そこからshowはアクセスできましたが、editに入ろうとするとNoMethodError TasksController#edit が表示されてしまいます。どなたか分かるからいらっしゃいましたらご教授いただけたら幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/10 12:18
2020/08/10 12:30