0

基本的な質問-モジュール、次に別のモジュール、次にクラス内の関数にアクセスするにはどうすればよいですか。

宝石で-

module Handsoap
  module Http

    # Represents a HTTP Request.
    class Request
      attr_reader :url, :http_method, :headers, :body, :username, :password, :trust_ca_file, :client_cert_file, :client_cert_key_file
      attr_writer :body, :http_method

      def set_trust_ca_file(ca_file)
         @trust_ca_file = ca_file

      end
    end
  end
end

私のファイルでは、これを試しています-

Handsoap:Http::Request.set_trust_ca_file('/etc/ssl/certs/ca-certificates.crt')

:Http is not a class/module (TypeError)
4

2 に答える 2

1

タイプミスがあります。する必要があります

Handsoap::Http::Request

また、メソッドはクラスインスタンスメソッドである必要があります

def self.set_trust_ca_file(ca_file)
  # ...
end
于 2012-05-24T21:31:57.120 に答える
1

チェックした答えは間違っていると思います。set_trust_ca_file()メソッドはクラスメソッドではありません。設定とインスタンス変数なので、インスタンスメソッドです。

Requestクラスのインスタンスでset_trust_ca_file()を呼び出す必要があります。

var = Handsoap::Http::Request.new
var.set_trust_ca_file(ca_file)

attr_accessorステートメントはインスタンス変数@trust_ca_fileをクラスの外部から設定可能にするため、メソッドを完全に削除することもできます。

var = Handsoap::Http::Request.new
var.trust_ca_file = "new_value"
于 2012-05-25T04:36:29.463 に答える