ruby on rails 友誼以下節目總是我的名字 (ruby on rails friendship following shows always my name)


問題描述

ruby on rails 友誼以下節目總是我的名字 (ruby on rails friendship following shows always my name)

friendship.rb

belongs_to :user, :include => [:profile]
belongs_to :friend, :class_name => 'user'

user.rb

  #following code
  has_many :friendships
  has_many :friends, :through => :friendships

  #followers code
  has_many :inverse_friendships, :class_name => "Friendship", :foreign_key => "friend_id"
  has_many :inverse_friends, :through => :inverse_friendships, :source => :user

using this code to display who i have friended and who has friended me

view

   <h2>Friends</h2>
    <ul>
      <% for friendship in @user.friendships.includes(:user) %>
        <li>
          <%= friendship.user.username %>
          (<%= link_to "remove", friendship, :method => :delete %>)
        </li>
      <% end %>
    </ul>

    <p><%= link_to "Find Friends", users_path %></p>

    <h2>Friended by Users</h2>
    <ul>
      <% for user in @user.inverse_friends %>
        <li><%=h user.username %></li>
      <% end %>
    </ul>

on the first loop block i always get my username printed, lets call it "fxuser" on the second loop block i get the correct usernames of who have friended me...

how can this be solved so the first loop will display the correct usernames of who i have friended?


參考解法

方法 1:

In your first loop I believe friendship.user is referring back to yourself; you're looking for the friendship.friend. Also, I think you want to be removing the friendship, not the inverse in the delete link.

 <% for friendship in @user.friendships.includes(:friend) %>
    <li>
      <%= friendship.friend.username %>
      (<%= link_to "remove", friendship, :method => :delete %>)
    </li>
 <% end %>

You also need to change

belongs_to :friend, :class_name => 'user'

to

belongs_to :friend, :class_name => 'User'

(by stergoszdeefour)

參考文件

  1. ruby on rails friendship following shows always my name (CC BY-SA 3.0/4.0)

#View #friend #Model #ruby-on-rails






相關問題

如何控制 addView 到佈局 (How to control addView to a layout)

ruby on rails 友誼以下節目總是我的名字 (ruby on rails friendship following shows always my name)

Мадэль, вызначаная ў выглядзе? (A model defined in a view?)

android view.getId() 返回 -1 (android view.getId() returns -1)

自定義屬性 select_year 助手或使用 javascript 滾動我自己 (custom attribute select_year helper or roll my own with javascript)

如何清理視圖對象? (How to clean view object?)

為什麼windowController是dealloc但子視圖不是dealloc (why the windowController is dealloc but the subview is not dealloc)

在 Waiting/Loading imageview 上禁用我的標籤欄和導航欄 (disable my Tabbar & Navigationbar of the screen on Waiting/Loading imageview)

DRYing rails 視圖:partial vs helper (DRYing rails view: partial vs helper)

在 SQL 中從 3 個視圖創建一個視圖 (Creating a view from 3 views in SQL)

.net core mvc:在區域上添加具有 crud 功能的控制器未正確生成代碼和鏈接 (.net core mvc: adding controller with crud functionality on area didn't generate code and link correctly)

為什麼segues不起作用?無法切換視圖 (Why segues does not work? can not switch view)







留言討論