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

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

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

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

Ruby on Rails

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

HTML

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

Q&A

解決済

1回答

972閲覧

seedの情報を反映させたいがエラーが出て対応できません。

Takanoj

総合スコア38

Ruby

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

Ruby on Rails

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

HTML

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

0グッド

0クリップ

投稿2020/05/18 05:36

編集2020/05/18 05:37

エラー文が出て解決出来ません。

対象エラー文

NoMethodError in Posts#index
Showing /home/vagrant/work/town_i/app/views/posts/index.html.erb where line #23 raised:

undefined method `name' for #Post:0x00000000065d8800
Extracted source (around line #23):
21
22
23
24
25
26

<% @posts.each do |contributor| %>

<td><%= contributor.name %></td> <td><%= contributor.explanation %></td> <td><%= contributor.image %></td>

イメージ説明

記述

index ページ

<tbody> <% @posts.each do |contributor| %>
<td><%= contributor.name %></td> <td><%= contributor.explanation %></td> <td><%= contributor.image %></td> <% end %>
</tbody> </table>

seed 情報

Contributor.create!(
type_id: 1,
name: '太郎',
explanation: '説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。',
image: File.open('./app/assets/images/big-star.png'),
)

Contributor.create!(
type_id: 2,
name: '鈴木',
explanation: '説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。',
image: File.open('./app/assets/images/big-star.png'),
)

Contributor.create!(
type_id: 3,
name: '佐藤',
explanation: '説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。',
image: File.open('./app/assets/images/big-star.png'),
)

Contributor.create!(
type_id: 4,
name: '太田',
explanation: '説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。',
image: File.open('./app/assets/images/big-star.png'),
)

Contributor.create!(
type_id: 5,
name: '田中',
explanation: '説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。説明文です。',
image: File.open('./app/assets/images/big-star.png'),
)

よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラーメッセージのとおりです。Postのインスタンスに存在しないnameを参照しているようです。

@posts.each do |contributor|としているために紛らわしいのですが、contributorに入ってくるものは、@postsから1個取り出したPostです。

投稿2020/05/18 05:53

maisumakun

総合スコア146018

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

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

Takanoj

2020/05/18 06:18 編集

ご連絡ありがとうございます。 maisumakunさんのご説明でエラー文の理解はできました。 具体的な動きとして、postsコントローラにpraivateに def contributor_params params.require(:contributor).permit(:name, :image, :explanation) end 記述して、データを持って来れるようにすれば宜しいのでしょうか。 初心者なので、ご教授頂ければと思います。
maisumakun

2020/05/18 06:20

この@postはどのように取得したデータでしょうか。そして、PostとContributorの間にどのような関係があるのでしょうか。 (「具体的な動きとして~」の部分は、おそらく的はずれです)
Takanoj

2020/05/18 06:58

ご連絡ありがとうございます。 postsコントローラになります。 class PostsController < ApplicationController def new @post = Post.new end def create @post = Post.new(post_params) @post.customer_id = current_customer.id @post.save redirect_to posts_path end def index @posts = Post.page(params[:page]).per(5) end def show @post = Post.find(params[:id]) @post_comment = PostComment.new end def destroy @post = Post.find(params[:id]) @post.destroy redirect_to post_path end private def post_params params.require(:post).permit(:town_name, :image, :comment) end def contributor_params params.require(:contributor).permit(:name, :image, :explanation) end end PostとContributorの間には、関連付けはしてないです。 def index @posts = Post.page(params[:page]).per(5) end で作った@postを使いました。
maisumakun

2020/05/18 08:12

> PostとContributorの間には、関連付けはしてないです。 でしたら、表示させようとしているものはcontributorのseedとは全く無縁なもの、ということかと思います。
Takanoj

2020/05/18 09:24

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問