![](/img/trans.png)
[英]How can I do search category.name by using elasticsearch in Rails?
[英]How do i search category name in Rails?
我的工作模型中有一個搜索功能,如果我想搜索職位的標題或說明,該功能就可以正常工作
def self.search(search)
if search
where(["title LIKE ? OR description LIKE ?", "%#{search}%" , "%#{search}%"])
else
end
end
如何按類別名稱搜索? 我只能找出通過category_id搜索類別並在搜索表單中輸入數字。
def self.search(search)
if search
where(["title LIKE ? OR category_id LIKE ?", "%#{search}%" , "%#{search}%"])
else
end
end
我的圖式
create_table "categories", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "jobs", force: :cascade do |t|
t.string "title"
t.text "description"
t.string "company"
t.string "url"
t.integer "user_id"
t.integer "city_id"
t.integer "category_id"
t.string "phone"
t.string "slug"
end
我的工作控制器
def search
@jobs = Job.search(params[:search])
end
您需要包括一個joins
語句,以表示您要在查詢中包括CATEGORIES表。
此外,如果搜索是字符串,則無需使用字符串注入將其轉換為字符串。
def self.search(search)
joins(:category).where(
["categories.name like ? OR title LIKE ? OR description LIKE ?",
search, search, search]
)
end
請注意, joins
語句使用關系的名稱。 我假設您在Job類中有這樣一行:
belongs_to :category
在SQL片段中,您需要使用表的名稱,類別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.