我正在為我的用戶表開發一個搜索功能,以便我可以查詢用戶并將其顯示在我的應用程式中。到目前為止,我已經將它用于 first_name,但我不確定用于在同一查詢中搜索姓氏的語法。我的用戶控制器如下所示:
def search
if params[:search].blank?
redirect_to users_path and return
else
@parameter = params[:search].downcase
@results = User.all.where("lower(first_name) LIKE :search", search: "%#{@parameter}%")
end
end
輸出:
User Load (0.9ms) SELECT "users".* FROM "users" WHERE (lower(first_name) LIKE '%laura%')
我的搜索表單如下所示:
<div class="input-group">
<%= search_field_tag :search, params[:search], placeholder: "Type ", class: "form-control" %>
<div class="input-group-btn">
<%= button_tag "Search User", class: "btn btn-info", :name => nil %>
</div>
</div>
<% end %>
我的結果頁面:
<% @results.each do |result| %>
<tbody>
<tr>
<td><%= link_to result.full_name, user_path(result) %></td>
<td><%= result.email %></td>
<td><% if result.subscribed? %>
<span class="badge rounded-pill bg-success">Subscribed</span>
<% else %>
<span class="badge rounded-pill bg-danger">Not Subscribed</span>
<% end %>
這很完美,但是我希望能夠輸入 last_name 并顯示這些結果。我知道我很接近,但我嘗試過的一些事情沒有奏效。
謝謝!
uj5u.com熱心網友回復:
你有沒有嘗試改變
@results = User.all.where("lower(first_name) LIKE :search", search: "%#{@parameter}%")
進入
@results = User.all.where("lower(first_name) LIKE :search or lower(last_name) LIKE :search", search: "%#{@parameter}%")
請執行并更新...
電阻
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/375549.html
標籤:红宝石轨道 PostgreSQL的
