ai logo设计网站,seo培训师招聘,三只松鼠商务网站建设目的,济南中建设计院有限公司网站1. 在视图文件增加搜索表单#xff1a;
在文章列表页的视图文件中#xff0c;增加一个搜索表单#xff0c;包含一个文本搜索框和一个提交按钮
% form_tag articles_path, method: :get do %% text_field_tag :title, params[:title], placeholder: 搜索…1. 在视图文件增加搜索表单
在文章列表页的视图文件中增加一个搜索表单包含一个文本搜索框和一个提交按钮
% form_tag articles_path, method: :get do %% text_field_tag :title, params[:title], placeholder: 搜索标题 %% text_field_tag :content, params[:content], placeholder: 搜索内容 %% submit_tag 搜索 %
% end %
上述代码中使用form_tag方法生成一个表单将表单关联到articles_path路由并使用GET方法提交数据。文本框的name属性分别为:title和:content用于与后端控制器进行参数传递。placeholder属性设置了文本框的占位符方便用户输入搜索关键字。
例如 2. 在控制器中处理搜索请求
在控制器的index action里面增加处理文章列表的请求。在index方法中可以更具搜索表单提交的参数来构建查询条件并将查询结果返回到视图中显示
def indexarticles Article.allarticles articles.where(title like ?, %#{params[:title]}%) if params[:title].present?articles articles.where(content like ?, %#{params[:content]}%) if params[:content].present?
end
上述代码中首先获取所有文章然后根据搜索表单提交的参数来构建查询条件。如果搜索表单中的:title参数不为空就使用where方法添加一个标题查询条件如果搜索表单中的:content参数不为空就使用where方法添加一个内容查询条件。最后将查询结果赋值给articles实例变量用于在视图中显示搜索结果。
例如 3. 在视图中显示搜索结果
在文章列表页的视图文件中可以使用article实例变量来显示搜索结果
% articles.each do |article| %div classarticleh2% article.title %/h2p% article.content %/p/div
% end %
上述代码中使用each方法遍历articles实例变量中的所有文章并将每篇文章的标题和内容显示在一个div元素中。
例如 注我这边只显示标题和创建时间