обновление метода и ошибка неразрешенных параметров рельсов 4

у меня проблема с сильными параметрами в rails 4 и angularjs, при обновлении моего метода внутри контроллера я получил следующую ошибку:

Запрещенные параметры: id, cliente_id, created_at, updated_at Запрещенные параметры: id, cliente_id, created_at, updated_at Запрещенные параметры: id, cliente_id, created_at, updated_at Запрещенные параметры: id, cliente_id, created_at, updated_at Запрещенные параметры: id, cliente_id, created_at, updated_at Недопустимые параметры: id, cliente_id, created_at, updated_at Недопустимые параметры: id, cliente_id, created_at, updated_at Недопустимые параметры: id, format, cliente

Вот мой JSON отправлен:

    {
    "id"=>"52", 
    "CliERP"=>"C-00125", 
    "CliRazao"=>"CHOCOLANDIA COMERCIO DE CHOCOLATES LTDA.", 
    "CliCNPJ"=>"55946756000110", 
    "CliEmail"=>"[email protected]", 
    "CliObs"=>"TESTE\nTESTE CHOCOMANIA 123456", 
    "enderecos_attributes"=>[
        {
            "id"=>52, 
            "cliente_id"=>52, 
            "EndTipo"=>"E", 
            "EndCEP"=>"78456441", 
            "EndLogradouro"=>"RUA IPIRANGA", 
            "EndNumero"=>"2500", 
            "EndBairro"=>"CENTRO", 
            "EndCidade"=>"PORTO ALEGRE", 
            "EndEstado"=>"RS", 
            "created_at"=>"2016-04-30T18:00:11.249Z", 
            "updated_at"=>"2016-04-30T18:00:11.249Z"
        }
    ], 
    "telefones_attributes"=>[
        {
            "id"=>3, 
            "cliente_id"=>52, 
            "TelTipo"=>"F", 
            "TelNumero"=>"7843257896", 
            "created_at"=>"2016-04-30T18:00:11.251Z", 
            "updated_at"=>"2016-04-30T18:00:11.251Z"
        }, 
        {
            "id"=>4, 
            "cliente_id"=>52, 
            "TelTipo"=>"F", 
            "TelNumero"=>"7845214563", 
            "created_at"=>"2016-04-30T18:00:11.254Z", 
            "updated_at"=>"2016-04-30T18:00:11.254Z"
        }, 
        {
            "id"=>5, 
            "cliente_id"=>52, 
            "TelTipo"=>"C", 
            "TelNumero"=>"78996568941", 
            "created_at"=>"2016-04-30T18:00:11.257Z", 
            "updated_at"=>"2016-04-30T18:00:11.257Z"
        }
    ], 
    "emails_attributes"=>[
        {
            "id"=>1, 
            "cliente_id"=>52, 
            "MailTipo"=>"E", 
            "MailEndereco"=>"[email protected]", 
            "created_at"=>"2016-04-30T18:00:11.261Z", 
            "updated_at"=>"2016-04-30T18:00:11.261Z"
        }, 
        {
            "id"=>2, 
            "cliente_id"=>52, 
            "MailTipo"=>"E", 
            "MailEndereco"=>"[email protected]", 
            "created_at"=>"2016-04-30T18:00:11.275Z", 
            "updated_at"=>"2016-04-30T18:00:11.275Z"
        }, 
        {
            "id"=>3, 
            "cliente_id"=>52, 
            "MailTipo"=>"E", 
            "MailEndereco"=>"[email protected]", 
            "created_at"=>"2016-04-30T18:00:11.277Z", 
            "updated_at"=>"2016-04-30T18:00:11.277Z"
        }
    ]
}

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

class ClientesController < ApplicationController
    def index
        @clientes = Cliente.all
    end

    def show        
        @clientes = Cliente.find(params[:id])
        @clientes.enderecos = Endereco.where("cliente_id = ?", params[:id])
        @clientes.telefones = Telefone.where("cliente_id = ?", params[:id])
        @clientes.emails = Email.where("cliente_id = ?", params[:id])
        #logger.debug "RETORNO => #{@clientes.inspect}"
    end

    def create
        @cliente = Cliente.new(cliente_params)

        respond_to do |format|
            if @cliente.save
                format.json { render :show, status: :created }
            else
                format.json { render json: @cliente.errors, status: :unprocessable_entity }
            end
        end
    end

    def update
        respond_to do |format|
            if @cliente.update(cliente_params)
                format.json { render :show, status: :ok }
            else
                format.json { render json: @cliente.errors, status: :unprocessable_entity }
            end
        end
    end

    def destroy
        @cliente.destroy
        respond_to do |format|
            format.json {head :no_content}
        end
    end

    private
    def cliente_params
        params.permit(:CliERP, :CliRazao, :CliCNPJ, :CliEmail, :CliObs, 
            enderecos_attributes: [:EndTipo, :EndLogradouro, :EndNumero, :EndBairro, :EndCidade, :EndCEP, :EndEstado],
            telefones_attributes: [:TelTipo, :TelNumero],
            emails_attributes: [:MailTipo, :MailEndereco])
    end
end

EDIT: вот моя модель

cliente.rb

class Cliente < ActiveRecord::Base
    has_many :enderecos, autosave: true
    has_many :telefones, autosave: true
    has_many :emails, autosave: true
    has_many :pedido

    accepts_nested_attributes_for :enderecos
    accepts_nested_attributes_for :telefones
    accepts_nested_attributes_for :emails
end

endereco.rb

class Endereco < ActiveRecord::Base
    belongs_to :cliente
end

электронная почта.рб

class Email < ActiveRecord::Base
    belongs_to :cliente
end

телефон.рб

class Telefone < ActiveRecord::Base
    belongs_to :cliente
end

Я думаю, что моя проблема в client_params Спасибо!


person GMMaster    schedule 14.05.2016    source источник


Ответы (1)


Вложенные атрибуты Active Record /ClassMethods.html

person user3100232    schedule 14.05.2016