ビューでは、複雑な条件(およびほとんどの条件)を避ける必要があります。それらをヘルパー、またはさらに良いことに、ある種の「プレゼンター」に抽出して、それらの「グローバルな見た目/感じのヘルパー」の代わりにレシーバーで作業できるようにします
SomeHelper
module SomeHelper
def work_link
(@ethos.present? && @work) ? link_to("Add Work", work_path) : nil
end
end
意見
<%= work_link %>
<%= @ethos.tagline if @ethos.present? %>
空の配列とは対照的@ethos
である可能性が高い場合は、代わりに次を使用できます。nil
[]
<%= @ethos.try :tagline %>
また、元のビューでは、ではなく<%= unless @work.nil? do %>
を使用する必要があることに注意してください。-
=
ああ、ERBではなくHAMLを使用することをお勧めします。HAMLを使用すると、ビューは次のようになります(読みやすくなりますね):
= work_link %>
= @ethos. try :tagline
HAMLでは元のビューは次のようになります(ビューの条件はできるだけ避けてください!)
- unless @ethos.blank?
- unless @work.nil? do
= link_to "Add Work", work_path
= @ethos.tagline