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

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

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

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

解決済

SintaxErrorが解決できません

pi-nattu
pi-nattu

総合スコア47

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

1回答

0リアクション

0クリップ

343閲覧

投稿2022/07/29 05:15

編集2022/07/29 05:27

Railsを使っておすすめの本を投稿できるアプリケーションを作成しています。
部分テンプレートの設定をしてサーバで確認してみたらSintaxErrorが出てしまいました。
2時間くらいここで止まってしまっているので解決方法を教えていただけると幸いです。

実現したいこと

SintaxErrorの解消
(Viewのbooks/index.html.erbとusers/show.html.erbの共通化)

発生している問題・エラーメッセージ

ActionView::SyntaxErrorInTemplate in UsersController#show Encountered a syntax error while rendering template: check <div> <h1>User info</h1> <h3>name <%= @user.name %></h3> <%= image_tag @user.get_profile_image(100,100) %> <% if @user.id == current_user.id %> <p><%= link_to "プロフィール編集", edit_user_path(@user) %></p> <% end %> <% end %> <h3>introduction</h3> </div> <%= render '/books/books',books: @books %> app/views/users/show.html.erb:14: syntax error, unexpected end, expecting end-of-input

該当のソースコード

Rails

#views/users/show.html.erb <div> <h1>User info</h1> <h3>name <%= @user.name %></h3> <%= image_tag @user.get_profile_image(100,100) %> <% if @user.id == current_user.id %> <p><%= link_to "プロフィール編集", edit_user_path(@user) %></p> <% end %> <% end %> <h3>introduction</h3> </div> <%= render '/books/books', books: @books %>

試したこと

<% end %>
をerror文の前後で書き足したりしましたが、解決しませんでした。

補足情報(FW/ツールのバージョンなど)

Cloud9,EC2,t2.micro,Rails version: 6.1.6.1
Ruby version: ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

app/views/_books

###部分テンプレート <% books.each do |book| %> <div> <%= link_to user_path(book.id) do %> <P><%= image_tag book.user.get_profile_image(100,100) %></P> <% end %> <h3>Title</h><br> <%= link_to book.title, book_path(book.id) %></p> <h3>Opinion</h><br> <%= book.body %> </div>

views/books/index.html.erb

<%= render '/books/books', books: @books %> <div class="container"> <h2>Books</h2> <div class="row"> <div class="col-md-8" offse></div> <table class="table table-striped"> <thead> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"> <tr> <th></th> <th>Title</th> <th>Opinion</th> <th colspan="3"></th> </tr> <% @books.each do |book| %> <tr> <td> <%= link_to user_path(book.id) do %> <% if book.profile_image.attached? %> <%= image_tag User.get_profile_image(100,100) %> <% else %> <%= image_tag 'no_image', size: "100x100" %> <% end %> <% end %> </td>   <td><%=link_to book.title, book_path(book.id) %></td> <td><%= book.body %></td> </tr> <% end %> </thead> </table> </div> </div>

Usersコントローラ

Rails.application.routes.draw do get 'homes/about', to: 'homes#show', as: :about post 'books/book.id' => 'books#create' devise_for :users root to: "homes#top" resources :books, only: [:new, :show, :edit, :index, :create] resources :users, only: [:show, :edit, :index] # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end

Booksコントローラ

class BooksController < ApplicationController def new @book = Book.new end def create @book = Book.new(book_params) @book.user_id = current_user.id @book.save redirect_to book_path(@book.id) end def index @books = Book.all end def show end def edit end private def book_params params.require(:book).permit(:title, :body, :user_id, :profile_image) end end

Userモデル

class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_many :books, dependent: :destroy has_one_attached :profile_image def get_profile_image(width, height)#ユーザーアイコン設定# unless profile_image.attached? file_path = Rails.root.join('app/assets/images/sample-author1.jpg') profile_image.attach(io: File.open(file_path), filename: 'default-image.jpg', content_type: 'image/jpeg') end profile_image.variant(resize_to_limit: [width, height]).processed end end

Bookモデル

class Book < ApplicationRecord belongs_to :user has_one_attached :profile_image end

schema

# This file is auto-generated from the current state of the database. Instead # of editing this file, please use the migrations feature of Active Record to # incrementally modify your database, and then regenerate this schema definition. # # This file is the source Rails uses to define your schema when running `bin/rails # db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to # be faster and is potentially less error prone than running all of your # migrations from scratch. Old migrations may fail to apply correctly if those # migrations use external dependencies or application code. # # It's strongly recommended that you check this file into your version control system. ActiveRecord::Schema.define(version: 2022_07_25_122723) do create_table "active_storage_attachments", force: :cascade do |t| t.string "name", null: false t.string "record_type", null: false t.integer "record_id", null: false t.integer "blob_id", null: false t.datetime "created_at", null: false t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id" t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true end create_table "active_storage_blobs", force: :cascade do |t| t.string "key", null: false t.string "filename", null: false t.string "content_type" t.text "metadata" t.string "service_name", null: false t.bigint "byte_size", null: false t.string "checksum", null: false t.datetime "created_at", null: false t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true end create_table "active_storage_variant_records", force: :cascade do |t| t.integer "blob_id", null: false t.string "variation_digest", null: false t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true end create_table "books", force: :cascade do |t| t.text "tite" t.text "body" t.integer "user_id" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.text "title" end create_table "users", force: :cascade do |t| t.string "email", default: "", null: false t.string "encrypted_password", default: "", null: false t.string "reset_password_token" t.datetime "reset_password_sent_at" t.datetime "remember_created_at" t.string "name" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.index ["email"], name: "index_users_on_email", unique: true t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true end add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id" add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id" end

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

pi-nattu

2022/07/29 05:22

初めて投稿するので何か抜けていることがあるかもしれません...... タグ付け忘れたのですがGitHubも使用しています。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。