我是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)。 –
那麼你現在的代碼不工作?你有什麼錯誤嗎?如果是,則共享錯誤日誌。 –