Chạy: Ruby 1.9.3p0 (2011/10/30 sửa đổi 33.570) [x86_64-darwin11.2.0], Rails 3.2.0Elasticsearch, Tire & Hội
Tôi đang cố gắng để có được tìm kiếm đàn hồi làm việc thông qua TIRE đá quý trên các hiệp hội. Đối với một số lý do tôi tiếp tục nhận được lỗi/lỗi sau khi thực hiện một cào trên nhập khẩu lốp hoặc thỉnh thoảng trên một cái nhìn:
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
Dưới đây là mô hình của tôi: GEAR
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
USER
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+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :first_name, presence: true,
length: {:maximum => 50 }
validates :last_name, presence: true,
length: {:maximum => 50 }
validates :email, presence: true,
format: {:with => email_regex},
uniqueness: {:case_sensitive => false}
validates :password, presence: true,
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
Danh mục phụ
class SubCategory < ActiveRecord::Base
attr_accessible :name
belongs_to :category
has_many :gears
end
Tôi đang thiếu gì? Cảm ơn.
Cập nhật: Ok hóa ra tôi có một vài giá trị NIL trong cơ sở dữ liệu của tôi là lý do cho lỗi. Hy vọng rằng điều này có thể tiết kiệm một vài người một thời gian. – DaveG
Xin chào, tốt nó được sắp xếp ra - vì vậy quá trình nhập khẩu đã chết khi một số tác giả là 'nil'? ... Ngoài ra, có thể bạn có thể sử dụng lại điều này: https://github.com/karmi/railscasts-episodes/commit/ee1f6f39002f32ad25134c81dd6de74ff1b708fa để lập chỉ mục các liên kết mà không cần tạo các phương thức đặc biệt ... – karmi
Có, quá trình nhập sẽ không hoạt động vì một số khóa liên kết ngoài của tôi là không. Nó không có vẻ như thế. Cảm ơn lời đề nghị, tôi sẽ xem xét nó. – DaveG