كيفية العثور على وعرض مجموعة من الكائنات مع علامة معينة باستخدام بمثابة taggable (مسترجع)؟
-
06-07-2019 - |
سؤال
وأريد أن عرض قائمة من المواد في رأي تبين لي العلامة. أنا باستخدام بمثابة المساعد مسترجع taggable في القضبان 2.3.2 وSQLite3 التطبيق. لقد حصلت بقدر سبيل المثال الأساسي يأخذ مني، والعلامات تعيين و ثم عرض قائمة من لهم هذه المادة.
والآن أريد أن عرض قائمة من المواد التي تنتمي إلى علامة لكن الحصول على الخطأ التالي:
undefined method `article' for #<Tag id: 1, name: "various", taggings_count: 1>
نماذج
و/article.rb
class Article < ActiveRecord::Base
acts_as_taggable
end
و/user.rb
class Tag < ActiveRecord::Base
acts_as_tagger
end
المراقب المالي
و/tags_contoller.rb
def show
@tag = Tag.find(params[:id])
@articles = @tag.articles
end
مشاهدة
و/tags/show.html.erb
<% for article in @articles %>
...
<% end %>
وهنا هو إلى ملف الهجرة .
وشكرا جزيلا.
المحلول 3
وشكرا جزيلا لGeemus، مؤلف من الأفعال التي تعتبر مسترجع taggable لشرح هذا لي.
لعرض قائمة من المواد مع علامة معينة أنا فقط بحاجة إلى تغيير tags_controller من:
و/tags_contoller.rb
def show
@tag = Tag.find(params[:id])
@articles = @tag.articles
end
إلى:
والمراقب المالي /tags_contoller.rb
def show
@tag = Tag.find(params[:id])
@articles = @tag.tagged
end
نصائح أخرى
وأعتقد أن البرنامج المساعد ليست واحدة من اللوم هنا، انها سكليتي هذا ما تجلب لك المتاعب. أنا واجهت هذا واحد من قبل - على ما يبدو سكليتي لا يمكن أن نفهم جملة "table_name.column_name"، على الرغم من انها ليست المذكورة على الموقع. في حالتي أنا فقط تحولت إلى الخلية، وذهب كل شيء من دون مشكلة. نرى ما اذا كان هذا يساعد.
والمشكلة هي أن لديك نموذج يدعى كائن. إعطائها اسم له أي تداخل مع الفئات النظام روبي، مثل ApplicationObject أو MediaObject.
وأنا يمكن التكهن لماذا هذا يسبب القضايا هو، ولكن ذلك لن يكون إلا تكهنات. فتح فصول هي ميزة رائعة من روبي، ولكنه يعني أنك بحاجة إلى توخي الحذر تسمية الفصول الدراسية حتى انهم متميزة من روبي والطبقات السكك الحديدية و.