前提・実現したいこと
railsでインスタンス変数で持ってきたカラムの値をviewで表示したい。
発生している問題・エラーメッセージ
NoMethodError in Posts#index Showing /Users/tsukamotoyuto/projects/private-app/app/views/posts/index.html.haml where line #6 raised: undefined method `text' for #<Maxim::ActiveRecord_Relation:0x00007fd1754046a8> Extracted source (around line #6):
該当のソースコード
class PostsController < ApplicationController def index @maxims = Maxim.all.order("RAND()").limit(1) end
index.html.haml .index.container-fluide .index__maxim = @maxims.name = @maxims.text
class CreateMaxims < ActiveRecord::Migration[5.2] def change create_table :maxims do |t| t.string "text" t.string "name" t.timestamps end end end
試したこと
class PostsController < ApplicationController def index @maxims = Maxim.all.order("RAND()").limit(1) @maxims = Maxim.offset( rand(Maxim.count) ).limit(1) @maxims = Maxim.find(params[:id]) end 等を試してみたが特に結果は変わらず。
index.html.haml .index.container-fluide .index__maxim = @maxims[0]["name"] = @maxims[0]["text"] と記述すると、エラーが出ずにちゃんとDBに保存されたデータがビューで表示される。
2: .index.container-fluide 3: .index__maxim => 4: =binding.pry 5: %p= @maxims.text 6: %p= @maxims.name 7: .index__warapper.container-fluid 8: -if @present.present? 9: -@posts.each do |post| [1] pry(#<#<Class:0x00007fd16e3de978>>)> @maxims => [#<Maxim:0x00007fd16e4f57d0 id: 1, text: "aaaaaa", name: "bbbbbbb", created_at: Sat, 16 May 2020 00:00:00 UTC +00:00, updated_at: Sat, 16 May 2020 00:00:00 UTC +00:00>] bindin.pryでみてもパラムズには値が入っている。
index.html.haml .index.container-fluide .index__maxim = @maxims.name と記述すると、Viewでは、エラーが出ず「Maxim」とモデル名が表示される。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/16 13:25