フォームを使用して質問を送信すると、すべての質問が同じページに表示されます。検証が(最小25文字)を通過するときにそれが正常に動作しますが、それは通らないとき、私はこのエラーを取得する:データベースに保存するときにメソッドエラーが発生しない
NoMethodError in Questions#create
Showing /home/ubuntu/workspace/app/views/static_pages/home.html.erb where line #20 raised:
undefined method `each' for nil:NilClass
Extracted source (around line #20):
<div class="row">
<div class="col-md-12">
<% @questions.each do |question| %> <--- this is line 20
<p> <%= question.content %></p>
<% end %>
</div>
私は本当に何が起こっているのか分かりません。何か案は?
アプリ/コントローラ/ static_pages_controller:
class StaticPagesController < ApplicationController
def home
@questions= Question.all
end
def help
end
end
ビュー/ static_pages /ホーム
<div class="row">
<div class="col-md-12">
<% @questions.each do |question| %>
<p> <%= question.content %></p>
<% end %>
</div>
</div>
アプリ/コントローラ/ questions_controller:
class QuestionsController < ApplicationController
#before_action :logged_in_user, only: [:create]
def create
@question = Question.new(question_params) #this might not work
if @question.save
flash[:success] = "Question added"
redirect_to root_path
else
flash[:danger] = "Add question failed. Try making the question longer."
render 'static_pages/home'
end
end
private
def question_params
params.require(:question).permit(:content)
end
end
モデル/ question.rb
class Question < ActiveRecord::Base
validates :content, presence: true, length: { minimum: 25}
end
質問テーブルにはレコードがありますか? – Pavan