polymorphi c несколько записей в одной форме - PullRequest
0 голосов
/ 20 января 2020

У меня есть эти две модели

class Folder < ApplicationRecord
 has_ancestry orphan_strategy: :adopt
 has_many :notes, class_name: "Note", as: :notable, dependent: :restrict_with_error
end

class Note < ApplicationRecord
    belongs_to :notable, polymorphic: true
end

Я буду визуализировать свою папку для записей для вас

Folder1
 - sub 1
 -- my folder 
 - sub 2
 -- my folder 2
Folder 2
 - sub 1
 -- my folder 
 - sub 2
 -- my folder 2

, как вы можете видеть, как работают предки, которые являются моими записями для моей папки класс.

позвольте мне показать мой пользовательский интерфейс, чтобы понять, что на самом деле происходит

enter image description here

, как вы можете видеть в моем пользовательском интерфейсе, я повторяю только root папка в родословной

, тогда, когда вы выбираете конкретную папку, она выглядит следующим образом

enter image description here

, когда вы выбираете какую-то папку, она будет получить все конечные узлы

, и пользователь может выбрать любую папку с помощью флажка

здесь html формат

    = form_for Note.new do |form|
  div.row.mb-3
    div.col
      span.font-weight-bold Path
    div.col
      input.mr-3.mb-4 type="checkbox" id="checkAll"
      span.font-weight-bold Folder
    div.col
      span.font-weight-bold Date Start

  - @folders.descendants.reject(&:has_children?).each do |folder|
    div.row
      div.col
        div.form-group.text-dark
          = folder.path.pluck(:name).join(" / ")
      div.col
        div.form-group.text-dark
          = form.check_box :reference_id, {class: "mr-3"}, folder.id, ''
          = form.hidden_field :reference_type, value: "Folder"
          = folder.name
      div.col
        div.form-group.text-dark
          = form.text_field :date_starts_at, placeholder: "", class: "form-control", id: "datepicker"
  div.row
    = form.submit "Create"

вот мой контроллер Примечание Контроллер

def create
    raise

end

def note_params
  params.require(:note).permit(:date_starts_at, :reference_type, :reference_id)
end

это результаты моего параметра

"note"=>{"reference_id"=>"", "reference_type"=>"Folder", "date_starts_at"=>""}

мои параметры не могут видеть мою проверенную ссылку

МОЙ ВОПРОС: как я могу сохранить это правильно?

цель - сохранить записи заметок (полиморфные c) в выбранную папку.

...