2015-03-26 1 views
1

Мой контроллер, похоже, выполняет то, что он должен делать, но я продолжаю получать сообщение об ошибке, которое я не мог понять. Я просматривал SO в течение нескольких часов, пытаясь найти подобный вопрос, и я нашел некоторые, и не попробовать то, что они предлагают, но по какой-то причине не работает для меня.ActionController :: ParameterMissing (параметр отсутствует или значение пуст:

Это моя среда

[email protected]:~/app$ rails -v 
Rails 4.2.1 
[email protected]:~/app$ ruby -v 
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux] 
[email protected]:~/app$ 

Это мой контроллер

require 'net/http' 
require 'net/https' 
require 'json' 
require 'uri' 

class NrisController < ApplicationController 
    before_action :set_nri, only: [:show, :edit, :update, :destroy] 

    # GET /nris 
    # GET /nris.json 
    def index 
    @nris = Nri.all 
    end 

    # GET /nris/1 
    # GET /nris/1.json 
    def show 
    end 

    # GET /nris/new 
    def new 
    @nri = Nri.new 
    end 

    # GET /nris/1/edit 
    def edit 
    end 

    # POST /nris 
    # POST /nris.json 
    def create 
    @nri = Nri.new 
    end 

    # PATCH/PUT /nris/1 
    # PATCH/PUT /nris/1.json 
    def update 
    <snip> 
    end 

    # DELETE /nris/1 
    # DELETE /nris/1.json 
    def destroy 
    @nri.destroy 
    <snip> 
    end 

    # PATCH/PUT /nris/1 
    # PATCH/PUT /nris/1.json 
    def apply_config 
    @nri = Nri.find(params[:id]) 
    <snip> 
    end 

    private 

    def set_nri 
     @nri = Nri.find(params[:id]) 
    end 

    def nri_params 
     params.require(:nri).permit(:MyParam1, :MyParam2, :MyParam3, :id) 
    end 
end 

Я также попытался

def create 
    @nri = Nri.new(nri_params) 
    end 
    end 

и

def create 
    @nri = Nri.create(nri_params) 
    end 
    end 

, но я получаю сообщение об ошибке

ActionController::ParameterMissing (param is missing or the value is empty: nri): 
app/controllers/nris_controller.rb:176:in `nri_params' 
app/controllers/nris_controller.rb:146:in `block in apply_config' 
app/controllers/nris_controller.rb:145:in `apply_config' 


Rendered /home/user/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.1/lib/action_dispatch/middleware/templates/rescues/_source.erb (2.5ms) 
Rendered /home/user/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.1/lib/action_dispatch/middleware/templates/rescues/_trace.text.erb (0.6ms) 
Rendered /home/user/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb (0.8ms) 
Rendered /home/user/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.text.erb (16.3ms) 

Что я делаю неправильно?

+0

Возможный дубликат [ActionController :: ParameterMissing (параметр отсутствует или значение пуст: film):] (http://stackoverflow.com/questions/24944871/actioncontrollerparametermissing-param-is-missing-or-the- стоимость является пустой-пленка) –

ответ

0

Если вы используете Postman или отправляете json для запроса на отправку, вам нужно задать заголовок ContentType как application/json.

 Смежные вопросы

  • Нет связанных вопросов^_^