2つの異なるモデルをリストする共通ビューがあります。唯一の違いは、link_to
アクション、モデルの1つにはlink
属性があり、もう1つにはありません。 link
属性が存在するかどうかを確認し、存在する場合は設定されているかどうかを確認します。動作する次のものがありますが、もっと良い方法があるかどうか疑問に思っていました。
%li
- if @element.has_attribute?("link") && @element.link
= link_to @element.title, @element.link
- else
= link_to @element.title, @element
私はあなたができることを信じる@element.attribute?
(例:@element.link?
)(「魔法の属性」と呼ぶことができると思います。)
これはチェックします
まさにあなたが欲しいもの。
属性ハッシュを使用してみてください。このハッシュは、すべてのactiverecordオブジェクトの属性のkey => value
マッピングを返します。
if @element.attributes['link']
# Here we are
else
# default
end