我正在尝试向我的应用程序添加一些社交功能,并遵循RailsCast #163 about self-referential association,但我在删除友谊时遇到了问题。
在user#show
页面上,我有 2 列: with@users
和@friends
. show
方法来自UsersController
:
def show
@user = User.find(params[:id])
@users = User.all
@friends = @user.friends
end
另外我正在使用<%= render @users %>
和部分,它们都从文件夹<%= render @friends %>
中渲染,如下所示:_user.html.erb
users
<tr>
<td>
<%= gravatar_for user, size: 30 %>
</td>
<td>
<%= user.name %>
</td>
<td>
<% if current_user.friends.exists?(user) %>
<%= link_to 'Remove friend', friendship, :method => :delete %>
<% else %>
<%= link_to 'Add friend', friendships_path(:friend_id => user), method: :post %>
<% end %>
</td>
</tr>
模型和控制器一切正常,因为我已经检查了一百次。但是当我尝试打开一个页面时,我undefined local variable or method friendship
从这一行收到一个错误<%= link_to 'Remove friend', friendship, :method => :delete %>
。