我试图在我的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 ..我之前试过..它给错误。 –