2012-08-05 41 views
5

Tôi đang sử dụng Ransack để thực hiện các tìm kiếm khá phức tạp thông qua một số kiểu máy. Một trong những mô hình này giữ văn bản miễn phí và sử dụng đá quý actions_as_taggable để gắn thẻ các từ.Tìm kiếm thông qua thẻ bằng Ransack

Tôi đang cố gắng tạo bộ chọn bộ sưu tập của những từ này để ransack có thể tìm thấy bất kỳ bản ghi văn bản đầy đủ nào từ một tập con của thẻ mà người dùng có thể xác định.

Điều này khiến tôi gần đến đó, nhưng nếu tôi cố gắng chọn nhiều hơn một từ, nó sẽ không trả về bất kỳ kết quả nào!

= f.select :note_in, @freetexts.tag_counts_on(:tags), {}, {:multiple => true} 

Trả lời

0

Ransack không thực sự được định hướng đến tìm kiếm phức tạp. Nó rất có thể xảy ra nếu bạn căng thẳng ransack đủ bạn kết thúc với một vấn đề khó khăn hơn rằng nếu bạn nơi làm một lựa chọn phức tạp.

Để tìm kiếm phức tạp, tôi sẽ recomment phần tiếp theo, từ cùng một tác giả của ransack và định hướng tốt hơn để tìm kiếm phức tạp.

Hơn nữa, theo thes sợi bạn đang ở trên một ngõ cụt: Ransack and acts-as-taggable-on issues

0

Tôi không phải là một chuyên gia ở tất cả, nhưng giải pháp phi ransack này có thể làm việc cho những người cần lọc theo thẻ với đá quý hành vi-như-taggable-on:

@search = MyModel.ransack(params[:q]) 
@result = @search.result(distinct: true).includes(:related_model) 
@result = @result.tagged_with(params[:tags].split(/\s*,\s*/)) if params[:tags].present? 
@result = @result.paginate(page: params[:page], per_page: 20) 

Điều này hy vọng thẻ param mới nằm ngoài phạm vi của Ransack. Bạn có thể sử dụng để lọc ra các kết quả mà Ransack cung cấp cho bạn.

Các vấn đề liên quan