【发布时间】:2012-07-19 15:31:27
【问题描述】:
我正在尝试创建一个允许用户搜索数据库的应用程序。搜索页面布局将与一些下拉菜单一起运行,这些下拉菜单将显示数据库中已有的数据以缩小搜索范围,以及允许用户输入“项目名称”等关键词的文本框。我无法让 rails 获取已在搜索表单中输入的所有信息并执行一次大搜索。
这是我的搜索布局的一部分:
<%= form_tag search_path, :method => 'get' do %>
<%= hidden_field_tag :direction, params[:direction] %>
<%= hidden_field_tag :sort, params[:sort] %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search Project Name", :project_name => nil %>
</p>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search Client", :client => nil %>
</p>
<% end %>
这是我在项目控制器中的索引和搜索操作:
def index
@projects = Project.all
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @projects }
end
end
def search
@project_search = Project.search(params[:search]).order(sort_column + ' ' + sort_direction).paginate(:per_page => 5, :page => params[:page])
end
这是我的模型/project.rb 文件的一部分
def self.search(search)
if search
where('project_name LIKE ?', "%#{search}%") || where('client LIKE ?', "%#{search}%")
else
scoped
end
end
如您所见,我只是尝试搜索 project_name 或客户端。如果我能做到这一点,我会将它扩展到其他领域。
目前的功能是,当我尝试在两个框中搜索它时,它会覆盖一个,并且只进行其中一个字段搜索。
我是 ROR 的新手,希望有人能提供帮助。任何建议将不胜感激。
提前致谢!
【问题讨论】:
标签: ruby-on-rails ruby forms search textbox