Ruby/Rails表現。 ActiveRecord クラスの self[:reason] とは何ですか?
概要
非常に古いコードの中に次の式を見つけました。
def reason
self[:reason].try(:to_sym)
end
これは、ApplicationRecord を (最終的には) 継承する通常のモデル クラスのメソッドであり、特別なことは何もありません。
誰か、self[:reason] が何なのか説明してもらえませんか?
解決策
ActiveRecord::AttributeMethods#[] は型キャストされた後に属性の値を返します
おそらく同じ効果ですが、より読みやすくなります:
def reason
super&.to_sym
end