2015-03-17 4 views
0

Как отобразить все социальные учетные записи, которые подключили пользователя? Можно ли сделать дисплей проще?как отображать все социальные учетные записи, которые подключили пользователя?

В просмотров:

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

Helper:

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

@ismail, вы можете попробовать посмотреть, работает ли метапрограммирование. –

ответ

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 

Примечание: Я не рекомендуется использовать метапрограммирование ради читабельности и отладки.

Смежные вопросы