我有一个面板,用于显示用户的社交链接:
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Follow me </h3>
</div>
<div class="panel-body profile_social_panel">
<% if @user.facebook_link.present? %>
<%= link_to image_tag('#'), @user.facebook_link %>
<% end %>
<% if @user.twitter_link.present? %>
<%= link_to image_tag('#'), @user.twitter_link %>
<% end %>
<% if @user.youtube_link.present? %>
<%= link_to image_tag('#'), @user.youtube_link %>
<% end %>
</div>
</div>
我正在寻找一种检查AT LEAST
是否存在一个链接的方法,以便我可以显示该面板。
答案 0 :(得分:2)
选项1 :
这可以直接在视图层完成:
<% if @user.facebook_link.present? || @user.twitter_link.present? || @user.youtube_link.present? %>
选项2 :
或者,可以将此功能抽象到模型层中:
# app/models/user.rb
def link_present?
if facebook_link.present? || twitter_link.present? || youtube_link.present?
return true # Return true if true
end
false # Otherwise, return false
end
然后应用于视图:
# In your view
<% if @user.link_present? %>
Rails惯例将要求第二种方法更可取,因为它更符合DRY原则。