سؤال

أنا جديد في استخدام الموارد الموروثة وأريد استخدامها للتعليقات المتداخلة متعددة الأشكال. لدي العديد من الأشياء التي سيتم التعليق عليها (المقالات ، المعارض ، وما إلى ذلك) ويمكن أيضًا التداخل التعليقات. أنا أستخدم مزيجًا من Awesome_nted_set (Parent_ID ، LFT ، RGT) مع نموذج التعليق الخاص بي الذي يحتوي على أعمدة متعددة الأشكال.

تحتاج وحدة التحكم إلى تلقي طلب AJAX (فقط) لإنشاء الإجراء والأداء على النحو التالي:

النشر إلى /المقالات/12/تعليقات/34 يخلق تعليقًا مع تعليق يساوي @ @ @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 Resources تمرير معرف إلى إجراء إنشاء ، لذلك لا أعتقد أنه يمكنك نشر الإجراء بشكل صحيح بهذه الطريقة. قد تحتاج إلى إضافة تعليق إلى خيارات info_to ، حتى تتمكن من النشر إلى /تعليقات/33/تعليقات. لا أعرف ما إذا كان الموروثات يدعم هذا. إذا حدث ذلك ، يجب أن يكون إنشاء الكائن تلقائيًا. يمكنك الرجوع إلى أشياء مثل Parent_url أيضًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top