Использование наследованных_ресурсов для вложенных, полиморфных комментариев - PullRequest
0 голосов
/ 01 декабря 2010

Я новичок в использовании унаследованных ресурсов и хочу использовать его для полиморфных вложенных комментариев.У меня есть несколько объектов, которые будут комментируемыми (статьи, галереи и т. Д.), И комментарии также могут быть вложенными.Я использую комбинацию awesome_nested_set (parent_id, lft, rgt) с моей моделью Comment, имеющей полиморфные комментируемые столбцы.

Контроллер должен получать запрос AJAX (только) для действия create и выполнять, как показано ниже:

При публикации в / articles / 12 / comments / 34 создается комментарий с комментарием, равным @article (12), и родительским элементом, равным @comment (34)

/article / 12 / comments / 34

Публикация в / gallery / 12 / comments / 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 

1 Ответ

0 голосов
/ 01 декабря 2010

Вложенные комментарии сложны.Ресурсы Rails не предоставляют передачу идентификатора действию create, поэтому я не думаю, что вы можете правильно POST выполнить действие create таким образом.Возможно, вам понадобится добавить комментарий к опциям own_to, чтобы вы могли писать в / comments / 33 / comments .Я не знаю, поддерживают ли InheritedResources это.Если это так, создание объекта должно быть автоматическим.Вы также можете ссылаться на такие вещи, как parent_url.

...