ruby 制作动态搜索表单阻止膨胀控制器

sgtfey8w  于 2022-11-04  发布在  Ruby
关注(0)|答案(1)|浏览(102)

我有一个搜索表单,有两种搜索记录的方式,姓名和电子邮件。

<%= form_tag(clients_path, method: :get, class: "d-flex") do %>
    <%= text_field_tag(:client_name, params[:client_name], placeholder: "Buscar por nombre", class: "form-control") %>
    <%= text_field_tag(:client_email, params[:client_email], placeholder: "Buscar por email", class: "form-control") %>
    <%= submit_tag ("Buscar"), class: "btn btn-primary" %>
  <% end %>

在我的控制器中

if params[:client_name]
  @clients = User.where(name: params[:name])
else
  @clients = User.all
end
if params[:client_email]
  @clients = User.where(email: params[:client_email])
else
  @clients = User.all
end

这仅在搜索1个条件时有效。
我怎样才能使我的控制器代码动态化,并检查是否有任何条件成立,在我的@clients变量中显示相应的结果?我不想膨胀我的控制器...
谢谢你!

kmb7vmvb

kmb7vmvb1#

我会将其更改为:

@clients = User.all
@clients = @clients.where(name: params[:name]) if params[:name]
@clients = @clients.where(email: params[:client_email]) if params[:client_email]

相关问题