ruby-on-rails - 是否可以以编程方式确定在 ruby​​ 中将方法委托(delegate)给哪个对象?

标签 ruby-on-rails ruby

我有一组对象,其中一些具有organization_id属性,另一些则委托(delegate)organization_id。

例如:

class Department
  belongs_to :organization
end
class Program
  belongs_to :department
  delegate :organization_id, to: :department
end

class Role
  belongs_to :organization
end
class UsersRole
  belongs_to :role
  delegate :organization_id, to: :role
end

我想要一种方法来以编程方式确定organization_id被委托(delegate)给哪个对象类,以便我可以执行如下操作

def find_organization_id_source(object)
   object.organization_id.method_im_hoping_exists
end
$ find_organization_id_source(@program)
>> Department
$ find_organization_id_source(@users_role)
>> Role

最佳答案

这是不可能的。从active_support/core_ext/module/delegation.rb的来源可以看出,Rails 创建一个新方法,该方法将在内部调用委托(delegate)方法。

关于ruby-on-rails - 是否可以以编程方式确定在 ruby​​ 中将方法委托(delegate)给哪个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35047529/

相关文章:

ruby-on-rails - ActiveJob :at key 是什么格式

Ruby 方法参数?

ruby-on-rails - 使用脚本/delay_job 创建 delayed_job worker 时出现未定义方法错误

ruby-on-rails - 在 ActiveRecord 中执行后回滚

ruby-on-rails - 如果我创建一个 ruby​​ 对象会消耗多少内存?

ruby-on-rails - 是否可以使用我们尚未安装的 rails 版本创建新的 rails 应用程序?

javascript - 如何在 js.haml 文件中写入外部 .js 文件的内容 (Ruby on Rails)

ruby-on-rails - 将 json 文件数据保存到 Rails 数据库中

javascript - haml 和 javascript

ruby-on-rails - 如何解决sqlplus冲突?