前提・実現したいこと
rails初心者です。
Rails 5.0.7.2を使ってtodo共有アプリを作成しています。
todoを作成するボックス内にデータベースの内容を反映させる部分でエラーが起きていてつまづいています。
目的todoボックスにデータベースに登録した名前、テキストをひっぱり表示したい。
データベース :テーブル tasks :カラム task ←をボックス内に入れたい。
発生している問題・エラーメッセージ
NoMethodError in Tasks#index index.html.haml where line #18 raised: undefined method `task' for #<Task::ActiveRecord_Relation:0x00007f92b9518418> Did you mean? take Extracted source (around line #18): .tasks .tasks-name = @task.task ←18行目 .tasks-text .tasks-day
該当のソースコード
haml view/tasks/index .wrapper .head .head-l %li bbb %li aaa .said-content .said-content-head %p.task タスク一覧 %li.said-content-head-box-edit = link_to "/komado" do = icon('fa', 'edit', class: 'icon') タスクの追加 .said-content-body .task-box .tasks .tasks-name = @task.task .tasks-text .tasks-day .said-content-footer
controllers/tasks_controller class TasksController < ApplicationController def index @task = Task.all end end
models/task.rb class TasksController < ApplicationController def index end end
db class CreateTasks < ActiveRecord::Migration[5.0] def change create_table :tasks do |t| t.string :task t.string :tasktext t.timestamps end end end
試したこと
undefined method `task' for #
↑ task は定義されていませんという意味だと調べてわかりました。
エラー文でtakeを提案されてますが解消せず。tasks Task など変えてみましたが変化なし。
ネットにあるデータベースからデータを引用する仕方を真似てみましたがエラーは解決せず。
"for #" の#が何を意味しているのか…
@taskのみだと何も表示されずエラー文もでないため、やはり@task.task のtaskの部分でひっぱり先がない?状態なのでしょうか
数時間調べましたが解決に至れませんでした、お力を貸していただけると助かります。
補足情報(FW/ツールのバージョンなど)
Rails 5.0.7.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/26 03:49