我是ROR开发的初学者。我有导航,我希望在每个页面上都有搜索框,当我输入一些关键字时,它应该像跨桌面字段查询一样。我尝试使用一些在线教程,但无法做到这一点。 我的表名:教程 这里是导航栏在Ruby on Rails中使用类似查询进行搜索
<li><%= link_to 'Login', :controller => 'access', :action => 'login' %></li>
<li><%= link_to 'Sign Up', :controller => 'users', :action => 'new' %></li>
<li><%= link_to 'Logout', :controller => 'access', :action => 'logout' %></li>
<div align="right">
<%= form_tag("/search", method: "get") do %>
<%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
<%= submit_tag("Search") %>
<% end %>
</div>
这里对我的搜索形式是我的控制器
class SearchController < ApplicationController
def show
@tutorial = Tutorial.find(params[:q])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @tutorial }
end
end
end
这里是我的模型
class Search < ActiveRecord::Base
def @tutorial.search(search)
if search
find(:all, :conditions => ['tutorial_name LIKE ?', "%#{search}%"])
else
find(:all)
end
end
end
我不知道如何做这个。请帮助
我不确定如果在双引号内的'%#{search}%“'中传递实际上可以工作,您可能只需要这样做:'['tutorial_name LIKE%?%',search ]'。 –
相关,但可能会过时:[如何在Arel和Rails 3中执行LIKE查询?](http://stackoverflow.com/q/4430578/456814)。另请参见[Rails 4 LIKE查询 - ActiveRecord添加引号](http://stackoverflow.com/q/19105706/456814)。 –
那么你现在的代码不工作?你有什么错误吗?如果是,则共享错误日志。 –