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

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

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

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

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

601閲覧

active_storageでimage画像が表示されない

umakichi

総合スコア44

Ruby

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

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/12/25 22:30

編集2021/12/25 22:39

Ruby on Railsで紹介するアプリを作っています。acthive_storageを使用して、画像を表示させたいのですが、showページでは表示されますが、indexページではNoMethodError が出ます。
view/index.html.erbの記入方法かと思うのですが、上手くいかないので解決策を教えて欲しいです。

view/index.html.erb

<h3>犬情報一覧</h3> <table> <thead> <tr>  <th>写真</th> <th>id</th> <th>名前</th> <th>犬種</th> <th>年齢</th> <th>一言紹介</th> <th>性格</th> <th>住所</th> </tr> </thead> <tbody> <% @dogs.each do |dog| %> <tr> <td> <%= image_tag @dogs.image ,class:'dog-image'%></td> <td>No.<%= dog.id %></td> <td><%= dog.name %>ちゃん</td> <td><%= dog.kind %></td> <td><%= dog.old %>歳</td> <td><%= dog.dog_pr %></td> <td><%= dog.personality %></td> <td><%= dog.address %></td> </tr> <% end %> </tbody> </table> <p><%= link_to "ワンちゃん新規登録", :new_dog %></p> ```show.html.erb ```ここに言語を入力 <p id="notice"><%= notice %></p> <div class="dog-show-wrap"> <div class="dog-show-image"> <%= image_tag @dog.image ,class:'dog-show-image'%> </div> <div class="dog-show-text"> <p class="showText"><%= @dog.name %>ちゃん</p> <p class="showText"><%= @dog.old %></p> <p class="showText"><%= @dog.kind %></p> <p class="showText"><%= @dog.dog_pr %></p> <p class="showText"><%= @dog.personality %></p> <p class="showText"><%= @dog.address %></p> </div> </div> <%= link_to 'Edit', edit_dog_path(@dog) %> | <%= link_to 'Back', dogs_path %>

dogs_controllers

class DogsController < ApplicationController before_action :set_dog, only: %i[ show edit update destroy ] # GET /dogs or /dogs.json def index @dogs = Dog.all end # GET /dogs/1 or /dogs/1.json def show end # GET /dogs/new def new @dog = Dog.new end # GET /dogs/1/edit def edit end # POST /dogs or /dogs.json def create @dog = Dog.new(dog_params) respond_to do |format| if @dog.save format.html { redirect_to dog_url(@dog), notice: "Dog was successfully created." } format.json { render :show, status: :created, location: @dog } else format.html { render :new, status: :unprocessable_entity } format.json { render json: @dog.errors, status: :unprocessable_entity } end end end # PATCH/PUT /dogs/1 or /dogs/1.json def update respond_to do |format| if @dog.update(dog_params) format.html { redirect_to dog_url(@dog), notice: "Dog was successfully updated." } format.json { render :show, status: :ok, location: @dog } else format.html { render :edit, status: :unprocessable_entity } format.json { render json: @dog.errors, status: :unprocessable_entity } end end end # DELETE /dogs/1 or /dogs/1.json def destroy @dog.destroy respond_to do |format| format.html { redirect_to dogs_url, notice: "Dog was successfully destroyed." } format.json { head :no_content } end end private # Use callbacks to share common setup or constraints between actions. def set_dog @dog = Dog.find(params[:id]) end # Only allow a list of trusted parameters through. def dog_params params.require(:dog).permit(:name,:kind,:address,:old,:dog_pr,:personality,:image) end end

models/dogs.rb

class Dog < ApplicationRecord has_one_attached :image end

routes.rb

routes.rb

1Rails.application.routes.draw do 2 resources :dogs 3 end

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

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

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

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

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

guest

回答1

0

<%= image_tag @dogs.image ,class:'dog-image'%>

@dogsdogにすれば動くと思います。

投稿2021/12/28 09:03

esperer286

総合スコア30

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

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

umakichi

2021/12/29 01:59

ありがとうございます。上記の通りdogに変更したら動きました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問