2017-10-29 1 views
1

그래서 많은 질문이 있다는 것을 알고 있지만 누구도 내 질문에 답변하지 않고 내 문제를 해결했습니다. 그래서, 나는 약 1 주일 동안이 문제에 빠졌고 그것을 해결할 수 없다! 나는 레일에서 루비를 처음 접했지만 모든 것을 시도했다. 나는 이것을 가지고있다. (ActionController :: ParameterMissing : param is missing 또는 값이 비어있다 : 의견) 나는 그것을 고치는 법을 모른다. 놈의 모든 코드 (정말 간단 그래서 나는 안돼서) :ActionController :: ParameterMissing : param이 없거나 값이 비어 있습니다.

의견 컨트롤러 :

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 

새로운 기능 :

<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 

보기 :

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

제발 저를 도와주세요! 나는 그것을 풀 수 없기 때문에 미쳐 가고있다! 감사합니다 :) 인스턴스 변수 @opinion

답변

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 %> 

변경 :opinion.

0

또한 귀하의 경우에는 내가 좋아하는 디버거를 삭제하는 것이 좋습니다 params.fetch(:opinion, {}).permit(:body)

0

에 강한 매개 변수를 변경하는 경우 양식이 body 빈 필드가 제출 될 때이 문제가 발생할 수 pry 또는 byebug 바로 def create 사이 @opinion = Opinion.new(opi_params)params이 들어오는 것을보고 있습니다. opinion이 누락되었을 수 있으며 ParameterMissing 오류가 발생합니다.

또한 브라우저 또는 테스트를 통해이 오류가 발생합니까? 테스트에서이 오류가 발생하면 설정 한 것일 수 있습니다.

그동안 opi_params 방법에서 params.permit(:body)을 시도해보세요.

관련 문제