我試圖在我的Rails應用程序中實現自定義搜索功能。Ruby on Rails中的自定義搜索
我有3個表User
Company
和CompanyUser
宣佈我的關係如下
class CompanyUser < ActiveRecord::Base
belongs_to :company
belongs_to :user
...
end
在Company.rb
has_many :company_users, dependent: :destroy
has_many :users, through: :company_users
在User.rb
has_many :company_users, dependent: :destroy
has_many :companies, through: :company_users
和在我的查看頁面我列出了所有使用company_users表的公司 現在我有一個搜索字段,我可以在其中鍵入一個名稱來過濾公司用戶列表。
我打電話從我CompanyUsers表的方法來過濾搜索結果這樣
@company_users = CompanyUser.all
if params[:search_data].present?
@company_users = @company_users.filter_company_users(params[:search_data])
end
其中PARAMS [:search_data]傳遞給同樣的方法,當在搜索欄中輸入搜索數據。
這是做搜索過濾的方法。眼下
def self.filter_company_users(search_data)
where('company_id like (?)', "%#{search_data}%")
end
我能得到的結果只有當我在搜索字段中鍵入CompanyUser表的正確id
。我想要做的是使用用戶表和公司表中的字段進行搜索。例如來自用戶的email
和來自公司的name
。
Nopes ..我之前試過..它給錯誤。 –