2017-10-08 83 views
1

在此工作幾個小時,沒有解決方案。 Whenenever我加載的新verbalquestion的資源,我填寫表格並點擊提交,我得到的錯誤:ActionController::ParameterMissing at /verbalquestions param is missing or the value is empty: verbalquestionsRails 5:param丟失或者值爲空:verbalquestions

verbalquestions_controller.rb

class VerbalquestionsController < ApplicationController 

before_action :authenticate_user! 

def index 
@verbalquestions = Verbalquestion.all 

if params[:tag] 
    @verbalquestions = Verbalquestion.tagged_with(params[:tag]) 
else 
    @verbalquestions = Verbalquestion.all 
    end 
    end 

    def new 
    @title = "Add a new VQ" 
    end 

def show 
    @verbalquestion = Verbalquestion.friendly.find(params[:id]) 
    end 

def create 
    @verbalquestion = Verbalquestion.new(verbalquestion_params) 
    @verbalquestion.user = current_user 

end 
end 

private 
    def verbalquestion_params 
    params.require(:verbalquestions). 
    permit(
    :vq_title, 
    :vq_text, 
    :tag_list 
) 

end 

verbalquestions/new.html。 ERB

<%= form_with scope: :verbalquestion, url: verbalquestions_path do |f| %> 

<div class='field'> 
    <%= f.label :tag_list, 'Tags (separated by commas)' %><br/> 
    <%= f.text_field :tag_list %> 
</div> 


<div class="field"> 
    <%= f.label "Verbal Question Title", :class=>'label' %> 
    <div class="control"> 
    <%= f.text_field :vq_title, :id => 'vq_title', :class => 'textarea' %> 
    </div> 
</div> 

<div class="field"> 
    <%= f.label "Verbal Question Test", :class=>'label' %> 
    <div class="control"> 
    <%= f.text_area :vq_text, :id => 'vq_text', :class => 'textarea' %> 
    </div> 
</div> 


    <p> 
    <%= f.submit %> 
    </p> 


    <% end %> 

我到底做錯了什麼?

回答

1

這是因爲你的控制器需要 'verbalquestions' params中
params.require(:verbalquestions)

您可以嘗試form_for @verbalquestion在視圖和controller>new@verbalquestion = Verbalquestion.new()

另外,params.require(:verbalquestions)應該是單數形式,如params.require(:verbalquestion)

+0

但是控制器的參數設置是這樣的:'private def verbalquestion_params params.require(:verbalquestions)。 許可證( :vq_title, :vq_text, :tag_list ) end' 此外,的form_for不會,因爲它是一個Rails 5.1的應用程序做任何事情。我該怎麼辦? – mazing

+0

正如我已經回覆,添加'@ verbalquestion = Verbalquestion.new()'到你的控制器的'新'方法。 此外,您可以在您的視圖中使用'form_for @ verbalquestion'或在您的選擇中使用'form_with model:@ verbalquestion'。 – alex

+0

我已經完成了所有這一切,它不起作用。它仍然說'ActionController :: ParameterMissing at/verbalquestions param is missing or the value is empty:verbalquestions' – mazing

相關問題