2017-04-11 118 views
0

我张贴这些PARAMS形式:不能得到params.permit工作

{"utf8"=>"✓", "authenticity_token"=>"XXXXX", "bike_part_id"=>["367", "368"], 
"commit"=>"registrer en [48/1854] 
"controller"=>"services", "action"=>"create", "bike_id"=>"10"} 

这是控制器代码:

def create 
    @service = Service.new(service_params) 
    @service.bike = @bike 
    @service.bike_parts = @bike_parts 

    respond_to do |format| 
     if @service.save! 
     #[cut..] 
end 

-

def service_params 
     params.permit(:description, :log, :due_date, :bike_id, 
        :user_id, :completed, :bike_part_id 
        ) 
    end 

但我不断收到这个日志:

Unpermitted parameters: utf8, authenticity_token, bike_part_id, commit 

为什么不允许bike_part_id?

+1

你可以发表你的表格代码吗? – hoangdd

回答

0

对于数组,您需要为强参数指定数组是否应为预期值。

def service_params 
     params.permit(:description, :log, :due_date, :bike_id, 
        :user_id, :completed, bike_part_id: [] 
        ) 
end 
1

因为它是嵌套的。请尝试以下操作:

def service_params 
    params.permit(
    :description, :log, :due_date, :bike_id, user_id, :completed, bike_part_id: [] 
) 
end