首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby -访问模块内的函数和类

Ruby -访问模块内的函数和类
EN

Stack Overflow用户
提问于 2012-05-25 05:31:11
回答 2查看 1.7K关注 0票数 0

一个基本的问题--我如何访问一个模块中的函数,然后是另一个模块,然后是一个类。

在宝石里-

代码语言:javascript
复制
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

在我的档案里,我试着这样-

代码语言:javascript
复制
Handsoap:Http::Request.set_trust_ca_file('/etc/ssl/certs/ca-certificates.crt')

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

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-25 05:31:57

你打错了。应该是

代码语言:javascript
复制
Handsoap::Http::Request

此外,您的方法应该是类实例方法

代码语言:javascript
复制
def self.set_trust_ca_file(ca_file)
  # ...
end
票数 1
EN

Stack Overflow用户

发布于 2012-05-25 12:36:29

我相信检查的答案是不正确的。set_trust_ca_file()方法不是类方法。它是设置和实例变量,所以它是一个实例方法。

您需要在Request类的实例上调用set_trust_ca_file():

代码语言:javascript
复制
var = Handsoap::Http::Request.new
var.set_trust_ca_file(ca_file)

您还可以完全消除该方法,因为attr_accessor语句将使实例变量@trust_ca_file可从类外部设置:

代码语言:javascript
复制
var = Handsoap::Http::Request.new
var.trust_ca_file = "new_value"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10745582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档