0
我想做一個搜索過濾器,所有參數都是複選框的名稱,所以他們是數組填充ID值。SQL鏈(連接和wheres) - 紅寶石
@sql_query = ''
if filters_benefit_type.nil? == false
@sql_query = 'id_benefit_type = (:benefit_types)'
end
if filters_category.nil? == false
if filters_benefit_type.nil? == false
@sql_query = @sql_query + ' AND '
end
@sql_query = @sql_query + 'id_subcategory = (:company_subcategorys)'
end
if filters_zone.nil? == false
if filters_category.nil? == false
@sql_query = @sql_query + ' AND '
end
@sql_query = 'zone = (:zones)'
end
@companys = Company
.joins(:subsidiary)
.joins(:benefit)
.where(@sql_query,
:benefit_types => filters_benefit_type,
:company_subcategorys => filters_category,
:zones => filters_zone
)
這引發了我以下錯誤:
Mysql2::Error: Operand should contain 1 column(s):
任何想法?我想我做的.joins和。哪裏錯了...
沒有工作:S 'filters_benefit_type =參數[:filter_benefit_type] filters_category =參數[:filter_category ] filters_zone = params [:filter_zone] companies = Company.scoped companies = companies.where(:id_benefit_type => filters_benefit_type)if filters_benefit_type.present? companies = companies.where(:id_subcategory => filters_category)if filters_category.present? companies = company.where(:zone => filters_zone)if filters_zone.present?' 錯誤: ''where子句'中的未知列'tbl_companys.id_benefit_type' –
請參閱我的除了我的答案 –