前提・実現したいこと
投稿機能を実装しているが
上手く反映されません
発生している問題・エラーメッセージ
NoMethodError in Photos#index undefined method `photo_lists' for #<#<Class:0x00007ffd79082b08>:0x00007ffd7e989b98> Did you mean? photo_url
該当のソースコード
view
1<%= form_with(url: root_path, local: true, method: :get, class: "search-form") do |form| %> 2 <%= form.text_field :keyword, placeholder: "検索する", class: "search-input" %> 3 <%= form.submit "検索", class: "search-btn" %> 4<% end %> 5<div class="contents row"> 6 <%= photo_lists(@photos) %> 7</div>
routes
1Rails.application.routes.draw do 2 # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html 3 root to: 'photos#index' 4 resources :photos 5end
controllers
1class PhotosController < ApplicationController 2 def index 3 @photos = Photo.all 4 end 5end
model
1class Photo < ApplicationRecord 2 belongs_to :user 3end
試したこと
<%= photo_lists(@photos) %>
を
<%= photo_url(@photos) %>
に変更した。
エラーメッセージは消えたが
本来投稿して欲しい箇所に
保存した(name,text,image)を表示できるようにしたいが
http://localhost:3000/photos/%23%3CPhoto::ActiveRecord_Relation:0x00007ffd7936b270%3E
↑の文章が表示される
補足情報(FW/ツールのバージョンなど)
初めての質問なのでわかりにくいようでしたらすみません。
元のコードにあった「photo_lists」は、どこかで定義していた(あるいは何かしらのGemにある)ものでしょうか?
ご返答ありがとうございます。
以前似たようなアプリを作成しておりまして、その時に同じ箇所に「〜_lists」と記述していましたので、それと同じように記述しました。
「似たようなアプリ」の方では、「〜_lists」が別途で定義されていたのかもしれません。
「似たようなアプリ」で別途で定義してました、、、。
<% @photos.each do |photo| %>
<div class="content_post" style="background-image: url(<%= photo.image %>);">
<p><%= photo.text %></p>
<span class="name">
<%= photo.name %>
</span>
</div>
<% end %>
に置き換えましたら反映できました。
ありがとうございます。
回答1件
あなたの回答
tips
プレビュー