rails 语法 为列表增加搜索 功能

if params[:domain_name] != nil && params[:domain_name] != ''
   @domains = @domains.where('name like ? ', "%#{params[:domain_name]}%")
end
   

实现列表的搜索功能,首先在controller增加条件语句,来判断用户是否需要检索,需要检索的话就调用搜索的动作。

注意如果存在分页的内容,需要注意写法,不然会导致搜索不生效

比如,在搜索条件语句之后使用

@domains = @domains.page(params[:page]).per(15)

是不影响搜索功能的实现

但是,如果这么写,就会导致无法搜索,页面呈现的只是一个输入框,

@domains = Domain.page(params[:page]).per(15)

这是因为在同一个页面后面的内容会导致前面的name失效,从而实现一个页面只渲染一个name的效果

<%= form_tag '', method: :get do %> 
 domain_name: <%= text_field_tag :domain_name, params[:domain_name] %>
 domain_address: <%= text_field_tag :domain_address, params[:domain_address] %>
 <%= submit_tag nil, class: "form_submit" %>
 <% end %>

同样使用HTML语法也是可以的。比如

<form action="/domains" method="get">
 17   domain_name: <input type="text" name="domain_name" value=<%= params[:domain_name] %>/>
 18   domain_address: <input type="text" name="domain_address"/>
 19   <input type='submit'  /> 
 20 </form>

form 有很多用法可以查看相关的文档Action View Form Helpers — Ruby on Rails Guideshttps://guides.rubyonrails.org/form_helpers.html

<%#= form.text_field :name %>
          <input type="text" name="domain[name]" value=" <%= @domain.name %>" />
          <%#= text_field_tag "domain[name]", @domain.name %>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值