1

私はirbで作業していて、ダウンロードしたコードをクリーンアップしようとしています。

私はこれを実行しています:

require '/Users/alexgenadinik/projects/cmply/cmply-app/lib/app/social/linkedin/linkedin.rb'

そしてそれはうまくいきます。そのファイルには次のものが含まれています。

require File.join(File.expand_path("../",__FILE__),"init")
require 'oauth'

module LinkedIn
  puts "helllllooooo"

  class << self

    #logger.debug "....teeest"
    attr_accessor :token, :secret, :default_profile_fields

    # config/initializers/linkedin.rb (for instance)
    #
    # LinkedIn.configure do |config|
    #   config.token = 'consumer_token'
    #   config.secret = 'consumer_secret'
    #   config.default_profile_fields = ['education', 'positions']
    # end
    #
    # elsewhere
    #
    # client = LinkedIn::Client.new
    def configure
      yield self
      true
    end
  end

  #root_path = File.expand_path("../../../../../",__FILE__)

  autoload :Api,     File.join(LINKED_IN_LOAD_PATH,"linked_in/api.rb") #"linked_in/api"
  autoload :Client,  File.join(LINKED_IN_LOAD_PATH,"linked_in/client.rb") #"linked_in/client"
  autoload :Mash,    File.join(LINKED_IN_LOAD_PATH,"linked_in/mash.rb") #"linked_in/mash"
  autoload :Errors,  File.join(LINKED_IN_LOAD_PATH,"linked_in/errors.rb") #"linked_in/errors"
  autoload :Helpers, File.join(LINKED_IN_LOAD_PATH,"linked_in/helpers.rb") #"linked_in/helpers"
  autoload :Search,  File.join(LINKED_IN_LOAD_PATH,"linked_in/search.rb") #"linked_in/search"

end

しかし、次のようなコマンドを実行しようとすると、次のようになります。

client = LinkedIn::Client.new('key', 'key')

このエラーが発生します:

LoadError: no such file to load -- linked_in/helpers/authorization
    from /Users/alexgenadinik/projects/cmply/cmply-app/lib/app/social/linkedin/linked_in/helpers/authorization.rb:4
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require'
    from /Users/alexgenadinik/projects/cmply/cmply-app/lib/app/social/linkedin/linked_in/client.rb:2
    from (irb):2

したがって、次のように始まるclient.rbの2行目を指します。

require 'cgi'
require File.join(LINKED_IN_LOAD_PATH, "linked_in","helpers/authorization")

次のように始まるauthorization.rbの4行目:

module LinkedIn
  module Helpers

    module Authorization

ちなみに、エラーメッセージを上から読むべきですか、それとも下から読み始めてエラーが最初に発生した場所を確認する必要がありますか?

感謝します。なぜエラーが発生するのかわかりません。

4

1 に答える 1

1

ファイルが含まれるディレクトリは「linkedin」ですが、必要なディレクトリは「linked_in」です。実際のディレクトリの名前をlinked_inに変更する必要があります。これは、命名規則に準拠しているためです。

それはさておき、Railsはアプリの下のすべてのディレクトリをロードパスに追加すると確信しています。したがって、(ディレクトリ名とファイル名の両方を変更すると仮定して)言うことができるはずです。そうすればrequire 'linked_in/linked_in'、おそらくすべての自動ロードで同じことを実行して、それらを取り除くことができますFile.expand_path ...

于 2012-05-14T19:15:28.923 に答える