ProgateのRuby on Rails道場2のエラーについての質問です。
route.rb
Ruby
1Rails.application.routes.draw do 2 get "posts/index" => "posts#index" 3 get "posts/new" => "posts#new" 4 post "posts/create" => "posts#create" 5 post "posts/update" => "posts#update" 6 get "posts/:id" => "posts#show" 7 get "posts/:id/edit" => "posts#edit" 8 post "posts/:id/update" => "posts#update" 9 10 11 get "/" => "home#top" 12 get "about" => "home#about" 13end
posts_controller.rb
Ruby
1class PostsController < ApplicationController 2 def index 3 @posts = Post.all.order(created_at: :desc) 4 end 5 6 def new 7 @post = Post.new 8 9 end 10 11 12 def show 13 @post = Post.find_by(id: params[:id]) 14 end 15 16 def create 17 @post = Post.new(content: params[:content]) 18 if @post.save 19 flash[:notice] = "投稿を作成しました" 20 redirect_to("/posts/index") 21 else 22 render("posts/new") 23 end 24 25 end 26 27 def edit 28 @post = Post.find_by(id: params[:id]) 29 end 30 31 def update 32 @post = Post.find_by(id: params[:id]) 33 @post.content = params[:content] 34 35 if @post.save 36 flash[:notice] = "投稿を編集しました" 37 redirect_to("/posts/index") 38 39 else 40 render("posts/edit") 41 end
edit.html.erb
Ruby
1<div class="main posts-new"> 2 <div class="container"> 3 <h1 class="form-heading">編集する</h1> 4 <div class="form"> 5 <div class="form-body"> 6 <% @post.errors.full_messages.each do |message| %> 7 <div class="form-error"> 8 <%= message %> 9 </div> 10 <% end %> 11 <textarea name="content"><%= @post.content %></textarea> 12 <input type="submit" value="保存"> 13 </div> 14 </div> 15 <% end %> 16 </div> 17</div>
投稿編集機能を作るというお題が与えられて、
このようにプログラミングしたところ、「投稿編集ページへのアクセス時にエラーが起きています。」とエラーが出ました。
回答を見たところ、特に目立った間違いが見つからなかったです。
なぜ、エラーが出たのか教えていただけると幸いです。
>「投稿編集ページへのアクセス時にエラーが起きています。」とエラーが出ました。
エラーは要約せず省略せずコピペでそのまま提示してください。
難しいならエラー画面のキャプチャでも良いです。
https://teratail.com/help/question-tips#questionTips3-4-2
SyntaxError in PostsController#edit
/home/progate/tweet_app/app/views/posts/edit.html.erb:18: syntax error, unexpected keyword_ensure, expecting end-of-input ensure ^
Extracted source (around line #18):
16
17
</div>
</div>
Rails.root: /home/progate/tweet_app
Application Trace | Framework Trace | Full Trace
app/views/posts/edit.html.erb:18: syntax error, unexpected keyword_ensure, expecting end-of-input
Request
Parameters:
{"instanceId"=>"2918d79278", "ideKey"=>"ip-10-120-50-9", "containerPort"=>"3000", "languageName"=>"rails5", "locale"=>"ja", "id"=>"1"}
Toggle session dump
Toggle env dump
Response
Headers:
None
このように出ました。
すみません。投稿で書いたエラーは、Progate上で出てきたエラーのことでした。
質問は編集できます。
「Progateである」という前提や背景も含めて追記してください。
解決した場合、他者の回答ないし自己回答として内容をまとめて それをベストアンサーに設定することで、この質問を解決済みにすることができます