2017-05-30 58 views
1

我试图在我的控制器中接收一些参数,但是我在允许它们时遇到了问题。这是我的请求负载:导轨不允许的参数

{ 
    contacts: [{ 
      id: null, 
      address: null, 
      business: "Company", 
      cellphone: "", 
      city: null, 
      country: null, 
      email: "[email protected]" 
     }], 
    name: "Entity1" 
} 

在我的控制,我定义:

def update_params 
    params.permit(
     :name, 
     contacts_attributes: [ 
     :id, :first_name, :last_name, :email, :business, :position, :telephone, 
     :cellphone, :address, :city, :state, :country 
     ] 
    ) 
    end 

但是,当我打电话update_params方法,只有:名称是允许的。联系人是不允许的。我错过了什么吗?

+5

尝试'联系人:',而不是'contacts_attributes:' – Pavan

+0

允许其在模型还 – Mukesh

+0

检查,如果你在你的模型中使用attr_accessible也strong_params在控制器如果是的话,那么请从模型中取出attr_accessible在轨道4 还要检查如果您在模型中使用了accept_nested_attributes_for联系人 –

回答

3

就像我说的,你是允许contacts_attributes,而不是contacts。更改下面的update_params方法应该可以解决问题。

def update_params 
    params.permit(
    :name, 
    contacts: [ 
     :id, :first_name, :last_name, :email, :business, :position, :telephone, 
     :cellphone, :address, :city, :state, :country 
    ] 
) 
end 
-1

首先检查你写的模型accept_nested_attributes_for :contacts如果是,那么你的代码必须工作。