前提・実現したいこと
星の評価の実装。
質問の内容
・星の評価を作成したのですが、エラーが出て解決出来ず投稿しました。
発生している問題・エラーメッセージ
NoMethodError in Todolists#new
Showing /home/vagrant/work/gogogogogogo/app/views/todolists/new.html.erb where line #7 raised
**undefined method `rate' for #<User id: nil, created_at: nil, updated_at: nil>
Extracted source (around line #7):
5**
6
7
8
9
10
<%= f.label :rate %>
<%= f.hidden_field :rate, id: :review_star %>
<% end %>
エラーメッセージ
### 該当のソースコード ```ここに言語名を入力 ソースコード
試したこと
スペルミスなどをチェックしたのですが、分かりませんでした。
補足情報(FW/ツールのバージョンなど)
newコントローラ情報
class TodolistsController < ApplicationController
def new
@user = User.new
end
def index
end
end
newページ
<h1>Todolists#new</h1> <p>Find me in app/views/todolists/new.html.erb</p><%= form_for @user, url: '/todolists_index' do |f| %>
<%= f.label :rate %>
<%= f.hidden_field :rate, id: :review_star %>
<% end %>
javascript:
$('#star').raty({
size: 36,
starOff: "#{asset_path('star-off.png')}",
starOn: "#{asset_path('star-on.png')}",
starHalf: "#{asset_path('star-half.png')}",
scoreName: 'review[rate]',
half: true,
});
Reviewモデル
class Review < ApplicationRecord
validates :rate, numericality: { less_than_or_equal_to: 5, greater_than_or_equal_to: 1
}, presence: true
end
Reviewテーブル
class AddRateToReview < ActiveRecord::Migration[5.2]
def change
add_column :reviews, :rate, :float, null: false, default: 0
end
end
よろしくお願いします。
あなたの回答
tips
プレビュー