2010-11-22 15 views
0

Ryan Bates' railscast'u izledikten sonra Ruby on Rails uygulamasındaki kullanıcılar için bir arkadaşlık kendi kendini yönlendirme derneği başarıyla kurdum. İzleyenleri takip edebilir, takip edip takip edebilirim. Şimdi başka bir eleman çekmek istiyorum ve nasıl yapacağımı bilmiyorum.Koşullu olarak kod görüntülemek için Dostluklar tablosuma nasıl başvururum?

Benim current_user panosundayken current_user'nin kimseyi takip edip etmediğine ve current_user'nin herkes tarafından takip edilip edilmediğine bağlı olarak bir öğeyi koşullu olarak görüntülemek istiyorum.

<div id="following" class=""> 
<h2 class="tk-john-doe">Following</h2> 
<% for friendship in @user.friendships %> 
    <div class="friend"> 
    <%= link_to (friendship.friend.username), friendship.friend %> <%= link_to "(Unfollow)", friendship, :method => :delete, :class => "unfollow" %> 
    </div> <!-- close # --> 
<% end %> 
</div> <!-- close # --> 

Ve örnein herkes tarafından takip edilmekte değilse bunu göstermek istemiyorum:

örnein kimseyi takip değilse oother deyişle, şu görüntülemek istemiyorum

Friendship.rb

belongs_to :user 
    belongs_to :friend, :class_name => "User" 
:

Bunlar

<div id="following-you" class="grid_4 alpha"> 
    <h2 class="tk-john-doe">Followers</h2> 
    <% for user in @user.inverse_friends %> 
    <div class="friend"> 
     <%= link_to (user.username), user %> 
    </div> <!-- close # --> 
    <% end %> 
</div> <!-- close # --> 
dernekler kurmak nasıl olduğunuUser.rb
has_many :friendships 
    has_many :friends, :through => :friendships 
    has_many :inverse_friendships, :class_name => "Friendship", :foreign_key => "friend_id" 
    has_many :inverse_friends, :through => :inverse_friendships, :source => :user 

    def friends_workouts 
    @friends_workouts ||= Workout.find_all_by_user_id(self.friends.map(&:id), :order => "created_at DESC", :limit => 3) 
    end 

cevap

0

Herhangi bir arkadaş veya inversed_friends yöntemi olup olmadığını herhangi bir yöntemle kontrol edebilirsiniz? ilişkili bir veya daha fazla kayıt varsa bu aksi takdirde

<% if @user.friends.any? %> 
<div id="following" class=""> 
<!-- content --> 
</div> 
<% end %> 

yanlış olacaktır, gerçek dönecektir Ve senin yaptığını inverse_friends

<% if @user.inverse_friends.any? %> 
+0

ile aynı şeyi yapabilirsiniz. Teşekkürler. – bgadoci

İlgili konular