質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

1回答

298閲覧

違うページへのアクセス時エラーを解消してほしいです

skmt-2000

総合スコア1

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2020/10/12 08:28

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>

投稿編集機能を作るというお題が与えられて、
このようにプログラミングしたところ、「投稿編集ページへのアクセス時にエラーが起きています。」とエラーが出ました。
回答を見たところ、特に目立った間違いが見つからなかったです。
なぜ、エラーが出たのか教えていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/10/12 08:35 編集

>「投稿編集ページへのアクセス時にエラーが起きています。」とエラーが出ました。 エラーは要約せず省略せずコピペでそのまま提示してください。 難しいならエラー画面のキャプチャでも良いです。 https://teratail.com/help/question-tips#questionTips3-4-2
skmt-2000

2020/10/12 08:39

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 このように出ました。
skmt-2000

2020/10/12 08:40

すみません。投稿で書いたエラーは、Progate上で出てきたエラーのことでした。
m.ts10806

2020/10/12 09:51

質問は編集できます。 「Progateである」という前提や背景も含めて追記してください。
gouf

2020/10/12 12:52

解決した場合、他者の回答ないし自己回答として内容をまとめて それをベストアンサーに設定することで、この質問を解決済みにすることができます
guest

回答1

0

余分な <% end %> が含まれているように見えます

つぎのコードだと動くかも知れません

<div class="main posts-new"> <div class="container"> <h1 class="form-heading">編集する</h1> <div class="form"> <div class="form-body"> <% @post.errors.full_messages.each do |message| %> <div class="form-error"> <%= message %> </div> <% end %> <textarea name="content"><%= @post.content %></textarea> <input type="submit" value="保存"> </div> </div> </div> </div>

わからなくなったらリセットするか、あるいは VSCode などのエディタで再編集してみると良いかもしれません

Links

投稿2020/10/12 09:08

gouf

総合スコア2321

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gouf

2020/10/12 09:10

エラーメッセージに注目...「/home/progate/tweet_app/app/views/posts/edit.html.erb:18: syntax error, unexpected keyword_ensure, expecting end-of-input」...してみると、18行目前後がアヤシイことがわかります (予期せぬ閉じキーワードが使われてる)
skmt-2000

2020/10/12 12:20

ありがとうございます。解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問