Tag:

声明实例变量迭代哈希!

我想做以下事情: 我想声明迭代字典的类的实例变量。 我们假设我有这个哈希值 hash = {“key1” => “value1″,”key2” => “value2″,”key3” => “value3”} 我希望将每个键作为类的实例变量。 我想知道我是否可以声明迭代遍历该哈希的变量。 像这样的东西: class MyClass def initialize() hash = {“key1” => “value1″,”key2” => “value2″,”key3” => “value3”} hash.each do |k,v| @k = v end end end 我知道这不起作用! 我只把这段代码放在一边看看你是否能理解我想要的更清楚。 谢谢!

使用class_eval和instance_eval访问Ruby类变量

我有以下内容: class Test @@a = 10 def show_a() puts “a: #{@@a}” end class << self @@b = '40' def show_b puts "b: #{@@b}" end end end 为什么以下工作: Test.instance_eval{show_b} b: 40 => nil 但我不能直接访问@@b ? Test.instance_eval{ @@b } NameError: uninitialized class variable @@b in Object 同样,以下工作 t = Test.new t.instance_eval{show_a} a: 10 => nil 但是以下失败了 t.instance_eval{ […]

Ruby已经在使用我的模型的类名

我正在制作一个具有各种授权级别的论坛应用程序,其中一个是Monitor。 我这样做是通过扩展我的User类来实现的,我计划用“-ship”类(例如管理员,作者,主持人等)对其进行微调。 显然,Monitor类是ruby mixin的一部分。 如何在没有冲突的情况下保留我的资源名称?

是否可以更改Ruby对象的类?

是否可以在实例化Ruby对象后更改它的类,例如: class A end class B end a = A.new a.class = B 或类似的。 (上面的代码没有运行,因为类是只读变量) 我知道这不可取,有点奇怪,而不是我打算做的事情,但有可能吗?

Ruby类中“属性”的本质是什么?

我不理解以下示例中的attr_reader或property等关键字: class Voiture attr_reader :name attr_writer :name property :id, Serial property :name, String property :completed_at, DateTime end 他们是如何工作的? 我该如何创建自己的? 它们是function,方法吗? class MyClass mymagickstuff :hello end

我的class级名称与Ruby的名字冲突

我的模块中有一个名为“Date”的类。 但是当我想利用与ruby打包的Date类时,它会使用我的Date类。 module Mymod class ClassA class Date < Mymod::ClassA require 'date' def initialize today = Date.today # get today's date from Ruby's Date class puts "Today's date is #{today.to_s}" end end end end Mymod::ClassA::Date.new 运行它的输出是 test.rb:7:in `initialize’: undefined method `today’ for Mymod::ClassA::Date:Class (NoMethodError) 有没有什么方法可以从我自己的类中引用ruby的Date类,也称为“Date”?

ruby:质量初始化实例变量

是否有一种简单的方法来批量分配实例变量 def initialize(title: nil, label_left: nil, label_right: nil, color_set: nil) @title = title @label_left = label_left @label_right = label_right @color_set = color_set end 我可以循环/遍历初始化参数并自动分配吗?

如何自动创建目录中每个类的实例?

我如何在ruby中创建目录中每个文件中每个类的实例并将其作为数组提供? 先感谢您!

单表inheritance用于引用具有自己的字段的子类

我正在使用Ruby on Rails 3,我实现了一个有效的单表inheritance,如下所示: class User < ActiveRecord::Base # Schema Information # # Table name: User # # id : integer # type : string # children_user_id: integer … end class UserAdmin < User # Schema Information # # Table name: UserAdmin # # id : integer # special_field1 : string # special_field2 : string […]

在ruby中不使用eval将字符串转换为类名?

我有这样的事情: string = “Post” 我想将字符串转换为类名文字。 我使用这样的eval来转换字符串: eval(string) #=> Post 作为一名javaScript开发人员,我试图避免使用eval。 在Ruby中有更好的方法吗? 或者正在使用eval处理这个的首选方式?