我有一个 rails 4 应用程序,我正在尝试使用 elasticsearch。在添加 Elasticsearch 之前,我的代码运行良好,但现在出现此错误:
undefined method `map' for nil:NilClass
我的索引视图(我使用 haml):
= form_tag products_path, :method => :get do
= text_field_tag :query, params[:query]
= submit_tag "Search", :name => nil
= render "table"
这是我的 _table 部分:
- headers = @products.map(&:data).flat_map(&:keys).uniq
%table
%tr
- headers.each do |key|
%th= key
- @products.each do |product|
%tr
- headers.each do |key|
%td= product.data[key]
我的产品控制器#index
def index
if params[:query].present?
Product.search(params[:query])
else
@products = Product.all.where(:product_type_id => @product.id)
end
end
我的模型:
class Product < ActiveRecord::Base
include Tire::Model::Search
include Tire::Model::Callbacks
belongs_to :product_type
end
谢谢!