14

について読みまし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

編集ビュー:

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

html チェックボックスは問題ありませんが、値を に設定する方法がわかりませんobjective。定義しようとしobjective_ids= objectives_idsましたが、何も起こりません。

コントローラーで:

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

編集 ログファイルは言うUnpermitted parameters: perspective_id, objective_ids

4

2 に答える 2

28

行を変更して解決しました

params.require(:objective).permit(:name, :code, :description, :objective_ids)

params.require(:objective).permit(:name, :code, :description, :objective_ids => [])
于 2013-08-01T01:26:41.293 に答える