1. ホーム
  2. ruby-on-rails

[解決済み] ActiveRecordモデルのゲッターメソッドを上書きするには?

2022-10-05 09:52:44

質問

ActiveRecordモデルのゲッターメソッドを上書きしようとしています。という属性があります。 name という属性があり、モデルには Category というようなことができるようにしたいです。

def name
  name_trans || name
end

もし name_trans 属性が nil でない場合はそれを返し、そうでない場合は name 属性を返します。どうすればいいのでしょうか?

すると、このように普通に呼び出されるはずです。

@category.name

どのように解決するのですか?

この Railsスタイルガイド を使うことを推奨しています。 self[:attr] 以上 read_attribute(:attr) .

このように使うことができます。

def name
  name_trans || self[:name]
end