2015-08-05 10 views
5

https://github.com/dockyard/postgres_ext-serializerspostgres_ext/serializers मदद ... इतना आसान लगता है, लेकिन के रूप में वर्णित

यह इतना सेटअप करने के लिए सरल लगता है काम करने के लिए कुछ भी नहीं मिल सकता है, लेकिन मैं में काम करने के लिए किसी भी बुनियादी कार्यक्षमता प्राप्त नहीं कर पा रहे जेएसओएन को रेल से पोस्टग्रेस तक ले जाने की शर्तें। मैंने अपने एएसएस इनिट में, मेरे विशिष्ट धारावाहिकों और मेरे मॉडल में निम्नलिखित शामिल करने का प्रयास किया, लेकिन ऐसा लगता है कि यह सक्रिय नहीं होता है।

मैं ऑन रेल्स 4.2.3 और रूबी 2.2

हूँ और यह मैं क्या एक से अधिक फ़ाइलों को जोड़ने की कोशिश की है है:

की आवश्यकता होती है 'postgres_ext/serializers'

वास्तव में आपकी मदद की सराहना करते हैं, मुझे पता है कि मुझे कुछ स्पष्ट याद आना चाहिए।

अद्यतन: थोड़ा अधिक संदर्भ प्रदान करने के लिए, यह आप इस मणि के लिए README.md निर्देश पढ़ें, यह सिर्फ कहते हैं, "

बस 'postgres_ext/serializers' की आवश्यकता होती है और ActiveModel का उपयोग :: ! serializers के रूप में आप सामान्य रूप से

तो मैं अपने application.rb करने के लिए 'postgres_ext/serializers' की आवश्यकता होती है जोड़ा जाएगा, देखने के लिए एक serializer लिए एक छोटा सा संपादन किया है अगर यह काम किया:

class UserSerializer < ActiveModel::Serializer 

    cached false 

    attributes :id, :username, :location, :full_name 

    def full_name 
    "#{object.first_name} #{object.last_name}" 
    end 

    def full_name__sql 
    "first_name || ' ' || email" 
    end 

end 

तो मैं चल पाएंगे मेरी रेल कंसोल में निम्नलिखित:

users = User.first(10) 
ActiveModel::ArraySerializer.new(users, each_serializer: UserSerializer).to_json 

लेकिन __sql पूरा नाम विशेषता कभी नहीं दिखाया गया था और यह किसी भी पहले की तुलना में अलग तरह से postgres से डेटा खींच करने के लिए नहीं मालूम था।

और यही मेरी application.rb लग रहा है जैसे:

# require 'postgres_ext/serializers' ### Doesn't work here 

require File.expand_path('../boot', __FILE__) 

require 'rails/all' 

require 'postgres_ext/serializers' 

Bundler.require(*Rails.groups) 

module Baller 
    class Application < Rails::Application 
    # Do not swallow errors in after_commit/after_rollback callbacks. 
    config.active_record.raise_in_transactional_callbacks = true 

    # From: http://www.benfranklinlabs.com/where-to-put-rails-modules/ 
    # config.autoload_paths += %W(#{config.root}/lib) # add this line 
    config.autoload_paths += %W(#{config.root}/lib) 
    config.autoload_paths += Dir["#{config.root}/lib/**/"] 
    end 
end 

धन्यवाद!

+0

कृपया अपने प्रश्न में सटीक त्रुटि संदेश जोड़ें। वास्तव में क्या काम नहीं करता है और आप उसे कैसे जानते हैं? – EugZol

+0

@EugZol ने अभी मेरी पोस्ट में अधिक जानकारी दी है। तलाश के लिए धन्यवाद! – Hawk

उत्तर

2

क्या आपने अपने config/application.rb के शीर्ष पर यह require 'postgres_ext/serializers' जोड़ने का प्रयास किया है। मुझे लगता है कि यह पोस्टग्रेस ड्राइवरों को बदलने पर किसी और चीज से पहले जरूरी है। अपने अद्यतन जवाब देने के लिए

अद्यतन:

def full_name__sql 
    "first_name || ' ' || email" 
end 

होना चाहिए:

def self.full_name__sql 
"first_name || ' ' || email" 
end 

डॉक्स से:

... एक ही साथ एक वर्ग विधि की तलाश द्वारा फोन नाम और प्रत्यय __sql ...

+0

हां, लेकिन जब मैं इसे शीर्ष पर शामिल करता हूं तो मुझे एक त्रुटि मिलती है: रत्न/active_model_serializers-0.8.0/lib/active_model_serializers.rb: 12: '<मॉड्यूल: ActiveModel>' में: अनियमित स्थिर रेल :: Railtie (NameError) फ़ाइल में जल्द से जल्द जिसमें मैं इसे शामिल कर सकता हूं, इसलिए यह काम करता है: 'रेल/सभी' की आवश्यकता है इस पर किसी भी मदद की सराहना करते हैं! – Hawk

+0

तो क्या यह काम नहीं करता है जब आप इसे रेल/सभी के बाद शामिल करते हैं? मुझे लगता है कि इसके बाद से सही जगह होना चाहिए। –

+0

जब मैं रेल के बाद इसे शामिल करता हूं/सभी कंसोल लोड के बिना लोड करता है, लेकिन यह इस अर्थ में काम नहीं करता है कि postgres_ext/serializers सक्रिय या कनेक्ट नहीं लगते हैं। – Hawk

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