我正在尝试实现一个简单的搜索表单,该表单在数据库中搜索其内容正在被搜索的关键字。
我的观点有这种形式:
<%= form_tag search_keywords_path, :method => 'get' do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
<% end %>
我的控制器有这些:
def search
@keywords = Keyword.search(params[:search])
end
def show
@keyword = Keyword.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @keyword }
end
end
模型关键字.rb:
def self.search(search)
if search
Rails.logger.debug("debug::Searching for" + search)
@keyword = Keyword.find_all_by_content(search)
end
end
现在,每当我尝试运行搜索时,我都会收到此错误:
ActiveRecord::RecordNotFound in KeywordsController#show 找不到 id=search 的关键字
现在据我了解,有些东西弄乱了 show 方法,但我不明白为什么或如何解决它。任何帮助,将不胜感激。