Самостоятельная ассоциация с принятыми вложенными атрибутами - PullRequest
0 голосов
/ 11 февраля 2020
class Employee < ApplicationRecord
  has_many :subordinates, class_name: "Employee", foreign_key: "manager_id"
  belongs_to :manager, class_name: "Employee", optional: true
  accepts_nested_attributes_for :subordinates
end

Как создать employee_params в контроллере для глубокого вложенного объединения, как описано выше.

def employee_params
  params.require(:employee).permit(:name, :roll_no, subordinates_attributes: [:name, roll_no, :subordate_attributes:[]......])
end

1 Ответ

0 голосов
/ 11 февраля 2020

Просто передайте ha sh в качестве последнего элемента массива, чтобы разрешить массив вложенных атрибутов:

def employee_params
  params.require(:employee).permit(
     :name, :roll_no, 
     subordinates_attributes: [
       :name, :roll_no, 
       subordinates_attributes: [:name, :roll_no]
     ]
  )
end

Этот синтаксис выглядит действительно странно, но работает с [1, 2, 3, foo: :bar] == [1, 2, 3, {:foo=>:bar}].

...