لدينا تطبيق واجهة أمامية يستخدم Discourse كجوهر، ونرغب في تنفيذ بحث للمستخدمين مع التصفح.
حاليًا، لا أرى أن هذه الواجهة البرمجية (/search?q=name) تدعم type_filter: user. هل لديك فكرة حول كيفية تنفيذ هذا؟
لدينا تطبيق واجهة أمامية يستخدم Discourse كجوهر، ونرغب في تنفيذ بحث للمستخدمين مع التصفح.
حاليًا، لا أرى أن هذه الواجهة البرمجية (/search?q=name) تدعم type_filter: user. هل لديك فكرة حول كيفية تنفيذ هذا؟
هذا حل مؤقت قمنا به.
search_controller.rb وأضف هذا السطر.def show
@search_term = params.permit(:q)[:q]
// السماح بـ type_filter من معاملات الاستعلام
@type_filter = params.permit(:type_filter)[:type_filter] || 'topic'
...
offset إلى search.rb // يوجد تقريبًا في السطر 780
def user_search
return if SiteSetting.hide_user_profiles_from_public && !@guardian.user
users = User.includes(:user_search_data)
.references(:user_search_data)
.where(active: true)
.where(staged: false)
.where("user_search_data.search_data @@ #{ts_query("simple")}")
.order("CASE WHEN username_lower = '#{@original_term.downcase}' THEN 0 ELSE 1 END")
.order("last_posted_at DESC")
.offset(offset) // هذا السطر
.limit(limit)
users.each do |user|
@results.add(user)
end
end
بعد ذلك، ستتمكن من البحث عن المستخدمين عبر /search?q=name&type_filter=user&page=1. بشكل افتراضي، سيتم جلب 50 مستخدمًا، ويمكنك استخدام page للحصول على المزيد.
آمل أن يكون هذا مفيدًا! ![]()
فكرة رائعة! نحن أيضًا نعمل مع واجهة برمجة تطبيقات Discourse، وعندما حاولنا استخدام واجهة برمجة تطبيقات البحث، واجهنا هذه المشكلة أيضًا. يمكنني المساعدة في حلها.