如何显示已连接用户的所有社交帐户?

时间:2015-03-17 16:19:11

标签: ruby-on-rails ruby-on-rails-4

如何显示已连接用户的所有社交帐户? 是否可以使显示更容易?

IN views:

  <%= twitter_profile(@user) %>
  <%= facebook_profile(@user) %>
  <%= linkedin_profile(@user) %>
  <%= google_profile(@user) %>
  <%= instagram_profile(@user) %>

助手:

  def twitter_profile(user)
    user.twitter_profile ? image_tag(user.twitter_profile.profile_picture_url) : ""
  end
  def facebook_profile(user)
    user.facebook_profile ? image_tag(user.facebook_profile.profile_picture_url) : ""
  end
  def linkedin_profile(user)
    user.linkedin_profile ? image_tag(user.linkedin_profile.profile_picture_url) : ""
  end
  def google_profile(user)
    user.google_profile ? image_tag(user.google_profile.profile_picture_url) : ""
  end
  def instagram_profile(user)
    user.instagram_profile ? image_tag(user.instagram_profile.profile_picture_url) : ""
  end

1 个答案:

答案 0 :(得分:0)

如果您想尝试元编程,请在帮助模块中使用此功能:

%w(twitter facebook linkedin google instagram).each do |network|
  class_eval{
    "def #{network}_profile(user)
    user.#{network}_profile ? image_tag(user.#{network}_profile.profile_picture_url) : ''
    end"
  }
end

注意:为了便于阅读和调试,我不建议使用元编程。