باستخدام التعليقات الموروثة للتشكيلات المتداخلة
-
29-09-2019 - |
سؤال
أنا جديد في استخدام الموارد الموروثة وأريد استخدامها للتعليقات المتداخلة متعددة الأشكال. لدي العديد من الأشياء التي سيتم التعليق عليها (المقالات ، المعارض ، وما إلى ذلك) ويمكن أيضًا التداخل التعليقات. أنا أستخدم مزيجًا من 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 أيضًا.