轨道4中未允许的参数

Cri*_*jon 14 checkbox ruby-on-rails view-helpers strong-parameters ruby-on-rails-4

我读过collection_check_boxes但我不明白如何设置检查值.我有以下型号:

class Objective < ActiveRecord::Base

  has_many :indicators
  has_many :objective_children, class_name: "Objective", foreign_key: "parent_id"

  def objective_ids
    objective_children.collect{|o| o.id}
  end

  def objective_ids= objectives_ids
    objectives_ids.each do |id|
      objective_children << Objective.find(id)
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

编辑视图:

<%= form_for(@objective) do |f| %>
  <%= f.collection_check_boxes :objective_ids, Objective.all, :id, :name %>
  <%= f.submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

html复选框没问题,但我不知道如何设置值objective.我被尝试定义objective_ids= objectives_ids但没有任何反应.

在控制器中:

class ObjectivesController < ApplicationController
    def objective_params
      params.require(:objective).permit(:name, :code, :description, :objective_ids)
    end
end
Run Code Online (Sandbox Code Playgroud)

编辑 日志文件说Unpermitted parameters: perspective_id, objective_ids

Cri*_*jon 27

我解决了换线问题

params.require(:objective).permit(:name, :code, :description, :objective_ids)
Run Code Online (Sandbox Code Playgroud)

params.require(:objective).permit(:name, :code, :description, :objective_ids => [])
Run Code Online (Sandbox Code Playgroud)