質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • Ruby

    8233questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    7717questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Ruby on Rails 5

    2192questions

scaffoldでデータ追加する際にNoMethodError , undefined method のエラー修正について

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 108

crossclub_t

score 1

scaffoldを使ってフォームからデータを保存、追加する際に以下のようなエラーが出てしまいます。
イメージ説明

イメージ説明

調べてもよく分からなかったのでどなたか助言を宜しくお願いします。
コードも載せておきます。。

questions_controller.rb

class QuestionsController < ApplicationController
    before_action :set_question, only: [:show, :edit, :update, :destroy]
    layout 'questions'

    # GET /questions
    # GET /questions.json
    def index
    #Question.allで全データを取得し、orderで新しいものから順に並ぶようにしています。
        @questions = Question.all.order created_at: :desc
    end

    # GET /questions/1
    # GET /questions/1.json
    #新規作成したAnswerオブジェクトに、params[:id]で得られたID番号を指定しています。
    def show
        @answer = Answer.new
        @answer.question_id = params[:id]
    end

    # GET /questions/new
    def new
        @question = Question.new
    end

    # GET /questions/1/edit
    def edit
        redirect_to '/questions'
    end

    # POST /questions
    # POST /questions.json
    #送信されたフォームの内容をもとにQuestionインスタンスを作り、保存しています。
    def create
        @question = Question.new(question_params)
        respond_to do |format|
          if @question.save
            format.html { redirect_to '/questions' }
            format.json { render :show, status: :created, location: @question }
          else
            format.html { render :new }
            format.json { render json: @question.errors, status: :unprocessable_entity }
          end
        end
    end

    # PATCH/PUT /questions/1
    # PATCH/PUT /questions/1.json
    def update
        redirect_to '/questions'
    end

    # DELETE /questions/1
    # DELETE /questions/1.json
    def destroy
        redirect_to '/questions'
    end

    private
    # Use callbacks to share common setup or constraints between actions.
    def set_question
      @question = Question.find(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def question_params
      params.require(:question).permit(:title, :content, :name, :finished)
    end
end


_form.html.erb

<%= form_for(question) do |f| %>
    <% if question.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(question.errors.count, "error") %> prohibited this question from being saved:</h2>

      <ul>
      <% question.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
      </ul>
    </div>
    <% end %>

    <div class="field">
        <%= f.label :title %>
        <%= f.text_field :title %>
    </div>

    <div class="field">
    <%= f.label :content %>
    <%= f.text_area :content, cols:40, rows:10 %>
    </div>

    <div class="field">
    <%= f.label :name %>
    <%= f.text_field :name %>
    </div>
<!-- ユーザーに値を設定させたくない項目は、hidden_fieldを使い、非表示フィールドとして用意する-->
    <%= f.hidden_field :finished, {value:false} %>

    <div class="actions">
    <%= f.submit %>
    </div>
<% end %>


new.html.erb

<h1>新しい質問</h1>

<%= render 'form', question: @question %>

<%= link_to 'Back', questions_path %>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

同じタグがついた質問を見る

  • Ruby

    8233questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    7717questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Ruby on Rails 5

    2192questions