0
我有一個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]
我的ProductsController#指數
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
謝謝!
該錯誤意味着你有一個未初始化的值,你認爲是一個初始化的數組調用'map'方法。如果'params [:query] .present?'是真的,那麼'@products'不會被初始化,並且在你的'_table'部分調用'@ products.map ...'並且有一個未初始化的值。 – lurker