从侧边栏 - Rails持续搜索

时间:2015-08-18 18:07:24

标签: ruby-on-rails search persistence sidebar

我有一个带有搜索功能的侧边栏,可以查找项目。单击一个项目(在这种情况下为课程)后,显示页面将显示在侧栏的右侧,但是一旦单击它,搜索列表将恢复为其初始(未搜索)状态。如何进行持久搜索又如何使搜索保持搜索范围。这是我的代码:

模型

class Course < ActiveRecord::Base
    def self.search(search)
        if search
          where("lower(name) LIKE ?", "%#{search.downcase}%")
        else
          all
        end
    end
end

查看

<%= form_tag courses_path, :method => 'get' do %>
      <p>
        <%= text_field_tag :search, params[:search] %>
        <%= submit_tag "Search", :name => nil %>
      </p>
<% end %>

控制器

private
def search_course
      @courses = Course.search(params[:search]).paginate(page: params[:page], per_page: 4) #paginating
end

2 个答案:

答案 0 :(得分:0)

尝试编辑您的视图,如下所示:

rp.call

这样,每次单击按钮时页面都不会刷新。

答案 1 :(得分:0)

尝试:

<%= text_field_tag :search, params[:search], value: params[:search] if params[:search] %>

这会将text_field_tag rails helper生成的输入标记的value属性设置为params[:search]params[:search]是用户输入和提交的内容,如果params[:search]返回true,则输入标记的值将设置为params[:search]