加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Elasticsearch,Tire&Associations

发布时间:2020-12-16 19:10:14 所属栏目:百科 来源:网络整理
导读:运行: Ruby 1.9.3p0(2011-10-30修订版33570)[x86_64-darwin11.2.0],Rails 3.2.0 我正试图通过各种协会的TIRE宝石进行弹性搜索.出于某种原因,我在TIRE导入或偶尔在视图上执行rake时不断收到以下错误/错误: Daves-MacBook-Pro:outdoor dave$rake environment
运行: Ruby 1.9.3p0(2011-10-30修订版33570)[x86_64-darwin11.2.0],Rails 3.2.0

我正试图通过各种协会的TIRE宝石进行弹性搜索.出于某种原因,我在TIRE导入或偶尔在视图上执行rake时不断收到以下错误/错误:

Daves-MacBook-Pro:outdoor dave$rake environment tire:import CLASS=Gear FORCE=true
[IMPORT] Deleting index 'gears'
[IMPORT] Creating index 'gears' with mapping:
{"gear":{"properties":{}}}
[IMPORT] Starting import for the 'Gear' class
--------------------------------------------------------------------------------
101/101 | 100% rake aborted!######################################
undefined method `last_name' for nil:NilClass

Tasks: TOP => tire:import

这是我的模特:
齿轮

class Gear < ActiveRecord::Base
  attr_accessible :title,:size,:price,:image_url,:sub_category_id,:user_id
  belongs_to :user
  belongs_to :sub_category

  validates :title,presence: true
  validates :size,presence: true
  validates :price,presence: true
  validates :sub_category_id,presence: true
  validates :user_id,presence: true

  include Tire::Model::Search
  include Tire::Model::Callbacks


  def self.search(params)
    tire.search(load: true,page: params[:page],per_page: 18) do
      query { string params[:query]} if params[:query].present?
    end
  end

  def to_indexed_json
    to_json(methods: [:sub_category_name,:user_last_name,:user_first_name,:user_email])
  end

  def sub_category_name
    sub_category.name
  end

  def user_first_name
    user.first_name
  end

  def user_last_name
    user.last_name
  end

  def user_email
    user.email
  end
end

用户

class User < ActiveRecord::Base
  attr_accessible :first_name,:last_name,:email,:password,:password_confirmation
  has_secure_password
  has_many :gears
  before_save :create_remember_token

  email_regex = /A[w+-.]+@[a-zd-.]+.[a-z]+z/i

  validates :first_name,presence: true,length:  {:maximum => 50 }
  validates :last_name,length:  {:maximum => 50 }
  validates :email,format:  {:with => email_regex},uniqueness:  {:case_sensitive => false}
  validates :password,confirmation: true,length: {within: 6..40}

  def name
    first_name + " " + last_name
  end

  private

    def create_remember_token
        self.remember_token = SecureRandom.urlsafe_base64
    end
end

Sub_Category

class SubCategory < ActiveRecord::Base
  attr_accessible :name
  belongs_to :category
  has_many :gears
end

我错过了什么?谢谢.

解决方法

我的数据库中有一些NIL值是导致错误的原因.希望这可以节省一些人的时间.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读