2017-10-29 5 views
1

Ich weiß, dass es so viele Fragen gibt, aber keiner hat meine Fragen beantwortet und mein Problem gelöst. Also, ich bin mit diesem Problem seit etwa einer Woche und ich kann es nicht lösen! Ich bin wirklich neu in Ruby auf Schienen, aber ich habe versucht alles versucht. Ich habe dieses (ActionController :: ParameterMissing: Parameter fehlt oder der Wert ist leer: Meinung) und ich weiß nicht, wie man es repariert. Wurde leider der gesamte Code (ich bin Neuling so ist es wirklich einfach ist):ActionController :: ParameterMissing: Parameter fehlt oder der Wert ist leer:

Meinung Controller:

class OpinionsController < ApplicationController 
    def new 
    @opinion = Opinion.new 
    end 

    def create 
    @opinion = Opinion.new(opi_params) 
    @opinion.save 
    redirect_to @opinion 
    end 

    def show 
    @opinion = Opinion.find(params[:id]) 
    end 

    private 
    def opi_params 
     params.require(:opinion).permit(:body) 
    end 
end 

Neu:

<h1>Opinions</h1> 

<%= form_for :opinion do |f| %> 
    <%= f.label :body %><br> 
    <%= f.text_field :body %><br> 
    <br> 
    <%= f.submit "Create an option" %> 
<% end %> 

DB:

class CreateOpinions < ActiveRecord::Migration 
    def change 
    create_table :opinions do |t| 
     t.string :body 
    end 
    end 
end 

anzeigen :

<h1>Your Opinions:</h1> 
<div> 
    <%= @opinion.body %> 
</div> 

BITTE HELFEN SIE MICH! Ich werde verrückt, weil ich es nicht lösen kann! Thanks :)

Antwort

2
<h1>Opinions</h1> 

<%= form_for @opinion do |f| %> 
    <%= f.label :body %><br> 
    <%= f.text_field :body %><br> 
    <br> 
    <%= f.submit "Create an option" %> 
<% end %> 

ändern :opinion auf die Instanzvariable @opinion.

0

Dieses Problem kann auch auftreten, wenn das Formular mit dem Feld vorgelegt body leer, wenn es der Fall ist, um die starken Parameter ändern params.fetch(:opinion, {}).permit(:body)

0

Ich empfehle, einen Debugger wie pry oder byebug direkt zwischen def create und @opinion = Opinion.new(opi_params) fallen und zu sehen, was params kommt. Sie möglicherweise opinion, die den ParameterMissing Fehler ausgelöst wird, fehlt.

Erhalten Sie diesen Fehler auch über den Browser oder durch Ihren Test? Wenn Sie diesen Fehler von Ihrem Test erhalten, könnte es sich um Ihr Setup handeln.

Versuchen Sie in der Zwischenzeit params.permit(:body) in Ihrer opi_params Methode.

Verwandte Themen