У меня есть эти две модели
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
, как вы можете видеть, как работают предки, которые являются моими записями для моей папки класс.
позвольте мне показать мой пользовательский интерфейс, чтобы понять, что на самом деле происходит
, как вы можете видеть в моем пользовательском интерфейсе, я повторяю только root папка в родословной
, тогда, когда вы выбираете конкретную папку, она выглядит следующим образом
, когда вы выбираете какую-то папку, она будет получить все конечные узлы
, и пользователь может выбрать любую папку с помощью флажка
здесь 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) в выбранную папку.