Использование enherited_resources для вложенных, полиморфных комментариев
-
29-09-2019 - |
Вопрос
Я новичок в использовании унаследованных ресурсов и хочу использовать их для полиморфных вложенных комментариев. У меня есть несколько объектов, которые будут комментировать (статьи, галереи и т. Д.), И комментарии также могут быть вложены. Я использую комбинацию Awesome_nest_set (parent_id, LFT, RGT) с моей моделью комментариев, имеющих полиморфные комментируемые столбцы.
Контроллер должен получить запрос AJAX (только) для действий создания и выполнить, как ниже:
Публикация в /статьи/12/Комментарии/34 Создает комментарий с комментируемым, равным @Article (12) и родителям, равным @comment (34)
/статьи/12/Комментарии/34
Публикация в /Галерея/12/Комментарии/34 Создает комментарий с комментарием, равным @gallery (12) и родителю, равным @comment (34)
Я немного застрял, с чего начать. Это хороший вариант использования для наследственных ресурсов?
class CommentsController < InheritedResources::Base
respond_to :js, :only => :create
belongs_to :article, :cheat, :gallery, :video, :polymorphic => true
do
belongs_to :comments
end
def create
create! do |format|
# How in here do I build a comment so that it handles
polymorphism?
@comment.children.create(:commentable => @article or @cheat or
@something_generic?)
end
end
end
Решение
Вложенные комментарии сложны. Ресурсы Rails не предоставляют при передаче идентификатора для создания действия, поэтому я не думаю, что вы можете правильно публиковать действие создания. Вам может потребоваться добавить комментарий к параметрам Phine_to, чтобы вы могли опубликовать /Комментарии/33/Комментарии. Отказ Я не знаю, поддерживает ли это унаследованные Если это так, создание объекта должно быть автоматическим. Вы также можете ссылаться на такие вещи, как Parent_url.