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