2012-03-12 16 views
8

रनिंग: रूबी 1.9.3p0 (2011-10-30 संशोधन 33570) [x86_64-darwin11.2.0], रेल मैं लोचदार के माध्यम से काम खोज पाने के लिए कोशिश कर रहा हूँ 3.2.0Elasticsearch, टायर और संघों

संघों में टायर मणि।

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+\-.][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 

Sub_Category

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

मुझे क्या याद आ रही है? धन्यवाद।

+2

अद्यतन: ठीक है यह पता चला है कि मेरे डेटाबेस में कुछ शून्य मूल्य थे जो त्रुटियों का कारण था। उम्मीद है कि यह कुछ लोगों को कुछ समय बचा सकता है। – DaveG

+1

नमस्ते, अच्छा यह हल हो गया है - तो कुछ लेखक 'शून्य' था जब आयात प्रक्रिया की मृत्यु हो गई ... ... इसके अलावा, शायद आप इसका पुन: उपयोग कर सकते हैं: https://github.com/karmi/railscasts-episodes/commit/ee1f6f39002f32ad25134c81dd6de74ff1b708fa विशेष तरीकों के निर्माण के बिना एसोसिएशन को अनुक्रमणित करने के लिए ... – karmi

+0

हां, आयात प्रक्रिया काम नहीं करेगी क्योंकि मेरे कुछ संगठन विदेशी कुंजी शून्य थे। ऐसा लगता है कि ऐसा नहीं लगता था। सुझाव के लिए धन्यवाद, मैं इसे देख लूंगा। – DaveG

उत्तर

2

मेरे डेटाबेस में मेरे पास कुछ शून्य मूल्य थे जो त्रुटियों का कारण थे। उम्मीद है कि यह कुछ लोगों को कुछ समय बचा सकता है।

संबंधित मुद्दे