Lor*_*lor 2 ruby-on-rails rails-activerecord ruby-on-rails-5
我有一个带委托方法的模型,
class Card < ApplicationRecord
has_one :meta_sm2
delegate :next_repetition,
to: :meta_sm2
end
Run Code Online (Sandbox Code Playgroud)
因为底层模型(当前meta_sm2)可能在将来发生变化,所以我想将委托方法next_repetition设置为自定义名称,priority例如.
我如何定义自定义名称委托方法,以便我可以调用next_repetition类似的card.priority?
您可以使用alias_method来实现此目的.
class Card < ApplicationRecord
has_one :meta_sm2
delegate :next_repetition,
to: :meta_sm2
alias_method :priority, :next_repetition
end
Run Code Online (Sandbox Code Playgroud)