我有 2 个模型 Person 和 Address 具有并属于许多连接表关联。
在日期字段上过滤时,第一页被正确过滤。当我单击任何其他分页链接时,查询将从date(persons.dob) >= '2013-09-01')
变为date(persons.dob) >= 2013)
class Person
has_many :person_addresses
has_many :addresses, through: :person_addresses
end
class Address
has_many :person_addresses
has_many :persons, through: :person_addresses
end
class PersonAddress
belongs_to :person
belongs_to :address
end
人员的搜索表单具有dob_gteq
、dob_lteq
和过滤器name_cont
。addresses.street_cont
如果我只过滤dob_gteq
,第一页可以正常工作。所有其他分页原因:
ActionView::Template::Error (PG::UndefinedFunction: ERROR: operator does not exist: date >= integer
LINE 1: ...name" WHERE ((date(persons.dob) >= 2013 AN...
从搜索表单中删除addresses.street_cont
过滤器可以使其正常工作并按预期分页。
根据请求的控制器操作进行编辑
@q = Person.search(参数[:q]) @persons = @q.result(:distinct => true).paginate(:page => params[:page], :per_page => 30)
编辑 2
参数进来搜索:
Parameters: {"utf8"=>"✓", "q"=>{"name_cont"=>"", "addresses_street_cont"=>"", "addresses_zipcode_cont"=>"", "dob_gteq"=>"09-01-2013", "dob_lteq"=>""}, "commit"=>"Filter"}