如何在Rails 5中为委托方法定义自定义名称?

时间:2017-02-18 04:01:10

标签: ruby-on-rails ruby-on-rails-5 rails-activerecord

我有一个带委托方法的模型,

:caption:

由于底层模型(目前为class Card < ApplicationRecord has_one :meta_sm2 delegate :next_repetition, to: :meta_sm2 end )将来可能会发生变化,因此我希望将委托方法meta_sm2设置为自定义名称,例如next_repetition

如何定义自定义名称委托方法,以便我可以像priority一样调用next_repetition

1 个答案:

答案 0 :(得分:8)

您可以使用alias_method来实现此目的。

class Card < ApplicationRecord
  has_one :meta_sm2

  delegate :next_repetition,
           to: :meta_sm2

alias_method :priority, :next_repetition

end