我正在尝试在我的应用程序中添加一个简单的搜索表单。它应该按标题或说明搜索产品。我在Products模型中创建了部分,方法,但是当我尝试将render _search放入application.html.erb时,它崩溃了应用程序“我们很抱歉,但出了点问题。”任何想法如何解决? 文件:
应用程序/模型/ product.rb
class Product < ActiveRecord::Base
#...
def self.search(search)
search_condition = "%" + search + "%"
find(:all, :conditions => ['title LIKE ? OR description LIKE ?', search_condition, search_condition])
end
#...
应用程序/控制器/ products_controller.rb
class ProductsController < ApplicationController
before_action :set_product, only: [:show, :edit, :update, :destroy]
#...
def search
@products = Product.search params[:search]
end
#...
应用程序/视图/产品/ _search.html.erb
<%= form_tag :controller => 'products', :action => 'search', :method => 'get' do %>
<%= text_field_tag :search, params[:search], :id => 'search_field' %>
<%= submit_tag "Search", :name => nil %>
<%= link_to_function "Clear", "$('search_field').clear()" %>
<% end %>
应用程序/视图/产品/ _search_results.html.erb
<ul>
<% @products.each do |product| %>
<li><%= link_to product.title, :action => 'show', :id => product.id %></li>
<% end %>
</ul>
应用程序/视图/布局/ application.html.erb
<!DOCTYPE html> <%# Это файл макета-шаблона для всех веб-страниц%>
<html>
<head>
<title>MyGift.com</title>
...
<div id="search">
<%= render :partial => "products/search" %>
</div>
...
来自服务器控制台的错误: 在布局/应用程序中呈现store / index.html.erb(9.5ms) 渲染产品/ _search.html.erb(0.9ms) 在499ms完成500内部服务器错误
答案 0 :(得分:0)
您的代码没有问题。你的代码应该运行得非常好。我猜你错过了一些日志信息。最好分享您的日志文件的屏幕截图,以便我们可以看到是否缺少任何有价值的信息。