Tôi mới sử dụng Ruby on Rails và tôi đang tạo trang web đầu tiên của mình. Tôi có mô hình người dùng với 3 cột: firstname
, lastname
và email
. Tôi sử dụng lệnh ransack để tạo một công cụ tìm kiếm và tôi muốn có một trường tìm kiếm sẽ đi qua từng cột và hiển thị kết quả.Ransack, tìm kiếm nhiều cột, một trường, đường ray 3
Tôi đã thực hiện một user_controller.rb tìm kiếm như thế này:
@q = User.search(params[:q])
@users = @q.result(:distinct => true)
Và tôi User \ index.html.erb trông như thế này:
<%= search_form_for @search do |f| %>
<div class="field">
<%= f.label :firstname_cont , "Firstname" %>
<%= f.text_field :firstname_cont %>
<%= f.label :lastname_cont , "Lastname" %>
<%= f.text_field :lastname_cont %>
<%= f.label :email_cont , "Email" %>
<%= f.text_field :email_cont %>
</div>
<div class="actions"><%= f.submit "Search" %></div>
<% end %>
Cho tôi 3 tìm kiếm các lĩnh vực, nhưng tôi chỉ muốn một trong đó đi qua firstname, lastname và email.
Chỉnh sửa 1: Sau khi thử nghiệm một số chi tiết khác, tôi phát hiện ra rằng trường tìm kiếm không thể xử lý cả tên và họ hoặc bất kỳ khoảng trắng nào. Tôi đã đọc rằng có thể tạo một helper_method như thế này: Searching multiple fields with Ransack
Và khi tôi nhận được kết quả tìm kiếm, tôi được đưa vào chỉ mục mô hình của tôi, vv: người dùng/chỉ mục. Tôi có thể thay đổi điều này ở đâu?
Nhưng không có gì về cách sử dụng nó trong chế độ xem. Tại sao nó khó khăn như vậy để chỉ whrigt, đây là những gì bạn làm: trong Controller làm điều này -> trong mô hình làm điều này -> trong xem làm điều này -> Và không quên sửa chữa các tuyến đường như thế này ->
Nice, mà làm việc như một nét duyên dáng! Tôi đã googeld mình mù, nhưng tôi thấy bây giờ rằng câu trả lời là ngay trước mặt tôi. Cám ơn! –
Rất vui được giúp đỡ khi tôi có thể^_^ – phron
Tôi có thể yêu cầu bạn trợ giúp thêm không? Tôi đã nhận thấy rằng khoảng trắng, hoặc tìm kiếm với hơn 1 từ sẽ làm cho phương pháp này thất bại. Giống như nếu firstname là Foo, và họ là Bar, và tôi tìm kiếm thanh Foo, nó sẽ thất bại .. Có thể xây dựng một: def set_full_name .... kết thúc, và sau đó gọi nó trong xem?và làm thế nào để bạn gọi nó trong quan điểm? với helper_method? i dident quản lý để làm điều này .. Và một điều cuối cùng, nếu tôi có tìm kiếm bất kỳ nơi nào khác, kết quả của tôi sẽ allways ném tôi vào mô hình - chỉ mục. Tại sao điều này? –