Tôi đang sử dụng gem 'binarylogic-searchlogic' trong phiên bản 2.3.5 cùng với Rails 2.3.4.Rails: searchlogic search with hoặc conditions
Điều tôi muốn làm là thực hiện tìm kiếm trên mô hình cho một giá trị được chỉ định trên nhiều thuộc tính. Tôi đạt được điều này thông qua chaining được kết mọi thứ lại với nhau giống như
User.first_name_or_last_name_or_email_like(value)
Nhưng với ngày càng nhiều thuộc tính trong này tìm kiếm này có xu hướng xấu xí. Thay vào đó, tôi muốn sử dụng cơ chế tìm kiếm của searchlogic như sau:
search = User.search
search.first_name_like = value
search.last_name_like = value
..
@users = search.all
Vì vậy, đây là cách để tìm kiếm qua AND - nhưng điều tôi muốn là HOẶC. Tôi đã tìm thấy hai cách để đạt được điều này, nhưng cả hai đều không hoạt động.
1st một: thêm vào trước một or_ đến tình trạng
search = User.search
search.first_name_like = value
search.or_last_name_like = value
@users = search.all
này mang lại cho tôi The or_last_name_like is not a valid condition. You may only use conditions that map to a named scope
2nd một: sử dụng search.any
search = User.search
search.first_name_like = value
search.last_name_like = value
@users = search.any
mang lại cho tôi undefined method
bất kỳ' cho # `.
Có ý tưởng nào về điều đó không? Tôi có hiểu điểm đúng của readme không?
Cảm ơn sự giúp đỡ rất nhiệt tình của bạn!
chỉnh sửa: thời gian đối với một số workaround xấu xí:
search = User.search
search.first_name_like = value
search.last_name_like = value
User.find(:all, :conditions => search.scope(:find).gsub('AND','OR'))
trình nhưng chắc chắn không phải là cách để đi, phải không?
+1 Sau khi xem nhanh, tôi đồng ý với câu trả lời này. Để xác nhận, bạn có thể yêu cầu danh sách gửi thư Searchlogic. –