我在 Rails 应用程序中有两个 Ruby 类,Foo
并且Bar
. Foo
有很多Bar
s. Foo
有以下代表团:
delegate :bar_method, to: :bar
有没有办法bar_method
出现在Foo
's columns_hash
?
我在 Rails 应用程序中有两个 Ruby 类,Foo
并且Bar
. Foo
有很多Bar
s. Foo
有以下代表团:
delegate :bar_method, to: :bar
有没有办法bar_method
出现在Foo
's columns_hash
?
首先,如果你有一个 Foo 类,has_many :bars
那么 Foo 的一个实例没有 Bar,它有一个 Bar 的集合。所以你delegate :bar_method, to: :bar
不会工作,因为没有酒吧。
话虽这么说,如果改为 class Foohas_one :bar
然后delegate :bar_method, to: :bar
你可以调整 columns_hash 方法。
Rails 只是 Ruby,所以你可以只使用 Ruby
def self.columns_hash
super.merge('bar_method' => Bar.columns_hash['bar_method'])
end