前提・実現したいこと
Railsでブログの作成をしています。
Blogの編集と削除機能を付け加えたいです。
エラーメッセージ
NoMethodError in BlogsController#new
undefined method `move_to_index' for #BlogsController:0x0000000002712558
該当のソースコード
lambda do |target, value, &block| target, block, method, *arguments = expand(target, value, block) target.send(method, *arguments, &block) end end
target.send(method, *arguments, &block)に赤線がありました。
試したこと
下記のファイルを見直しましたが、解決できそうありませんでした。
controller
1class BlogsController < ApplicationController 2 3 before_action :move_to_index, except: :index 4 5 def index 6 @blogs = Blog.all.order(created_at: 'desc') 7 end 8 9 def new 10 @blog = Blog.new 11 end 12 13 def show 14 end 15 16 def create 17 @blog = Blog.new(blog_params) 18 @blog.save 19 redirect_to blogs_path 20 end 21 22 def edit 23 @blog = Blog.find(params[:id]) 24 end 25 26 def update 27 blog = Blog.find(params[:id]) 28 if blog.user_id == current_user.id 29 blog.update(blog_params) 30 end 31 end 32 33 def destroy 34 blog = Blog.find(params[:id]) 35 blog.destroy if blog.user_id == current_user.id 36 end 37 38 private 39 def blog_params 40 params.require(:blog).permit(:title,:text) 41 end 42 43end 44
index
1<% @blogs.each do |blog| %> 2 <div class = "articles"> 3 <div class="box2"> 4 <p><%= blog.title %></p> 5 <p><%= blog.text %></p> 6 <% if user_signed_in? && current_user.id == tweet.user_id %> 7 <div class="list"> 8 <li><%= link_to '編集', "/blogs/#{blog.id}/edit", method: :get %></li> 9 <br> 10 <li><%= link_to '削除', "/blogs/#{blog.id}", method: :delete %></li> 11 </div> 12 </div> 13 </div> 14<% end %> 15 16
edit
1 2 <%= form_with model: @blog, local: true do |f| %> 3 4 <h3>編集する</h3> 5 <br> 6 <%= f.text_field :title, placeholder: 'title'%> 7 <br> 8 <%= f.text_area :text, placeholder: placeholder: 'text',size: "60x12" %> 9 <br> 10 <%= f.submit "SEND" %> 11 <% end %> 12</div>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/02 10:44