ruby - 通过 Ruby 元编程调用实例方法而不指定实例?

标签 ruby metaprogramming

如何设计scope方法让它真正放入row.city?

row.scope do 
  puts city
end

最佳答案

使用instance_eval:

class RowClass
  attr_accessor :city

  def scope(&blk)
    instance_eval(&blk)
  end
end

row = RowClass.new
row.city = "bla"

row.scope do 
  puts city # prints "bla"
end

关于ruby - 通过 Ruby 元编程调用实例方法而不指定实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4486804/

相关文章:

ruby - 如何在 Ruby 中合并数组中的子数组?

ruby-on-rails - rmagick 未在 Windows 7 上构建 undefined reference 错误

javascript - 以漂亮的方式格式化查询参数

prolog - 具有一条规则的纯 Prolog 元解释器

ruby - 在 Ruby 中动态设置局部变量

python - 如何正确创建具有 isinstance 自定义行为的新类型?

ruby-on-rails - 如何使用 RubyZIP 将现有文件添加到 ZIP 文件?

ruby-on-rails - Rails 中 Controller 的嵌套命名空间

ruby - ruby 中的 "Here methods"?

python - 如何在Python中向继承方法添加装饰器而不复制整个方法?