Ruby on rails Rails 3中的用户友好嵌套逻辑
我正在尝试完成我的论坛应用程序。我想安排用户友谊。我使用Desive作为身份验证系统。我想要一些建议。 我应该将资源嵌套在用户和友谊中吗。这是铁路工人使用的方式:Ruby on rails Rails 3中的用户友好嵌套逻辑,ruby-on-rails,erb,Ruby On Rails,Erb,我正在尝试完成我的论坛应用程序。我想安排用户友谊。我使用Desive作为身份验证系统。我想要一些建议。 我应该将资源嵌套在用户和友谊中吗。这是铁路工人使用的方式: devise_for :users resources :users, only: [:index, :show] resources :friendships, only: [:create, :destroy] 我是这样使用的: devise_for :users resources :users, on
devise_for :users
resources :users, only: [:index, :show]
resources :friendships, only: [:create, :destroy]
我是这样使用的:
devise_for :users
resources :users, only: [:index, :show] do
resources :friendships, only: [:create, :destroy]
end
我真正的问题是。我想以一种方式使用友谊,即登录用户可以检查用户列表,如果他不在friendslist中,则可以添加朋友。现在我可以多次添加朋友。此外,用户还可以将自己添加为好友
如何使用if/else
语句修复此链接:
显示用户配置文件可以:
<section>
<h1>
<%= @user.username %>
</h1>
<%= link_to "Arkadaşlarıma Ekle", friendships_path(:friend_id => @user), :method => :post,class: "btn btn-large btn-primary" %>
</section>
@用户),:方法=>:post,类:“btn btn大型btn主”%>
在这里我找不到显示朋友个人资料的方法
<% for friendship in @friendships %>
<%= link_to friendship.friend.username, '#' %>
(<%= link_to 'Sil', friendship, :method => :delete %>)
<% end %>
(:删除%>)
。。
耙道:
我可以理解,我必须使用正确的if/else,但我在嵌套资源和路由时迷失了方向。谢谢你的解释
以下是我的编辑:
在“我的用户”\u控制器中:
def user_is_friend?(other_user)
current_user.friendships.find_by_friend_id(other_user.id)
end
<% unless user_is_friend?(@user) %>
<%= button_to "Add friend", friendships_path(:friend_id => user), :method => :post %>
<% end %>
def user\u是朋友?(其他用户)
当前用户。友谊。通过朋友id(其他用户。id)查找
结束
用户),:方法=>:发布%>
对吗 我建议您在用户索引视图中,当您与可变用户(
for@users do | user |)循环时,首先添加一个条件:
<% unless current_user == user %>
-->这将允许您处理除当前用户(即您自己)之外的所有用户
然后,您可以定义:
<% user_is_friend = current_user.friendships.find_by_friend_id(user.id) %>
如果用户已经在您朋友的列表中,则为真
然后,最后一段:
<% if !user_is_friend %>
<%= button_to "Add friend", friendships_path(:friend_id => user), :method => :post %>
<% end %>
用户),:方法=>:发布%>
POST对应于友谊控制器中的创建操作。当您将用户分配到“:friend\u id”时,您可以通过执行以下操作来建立相应的友谊:“@friend=current\u user.friendships.build(:friend\u id=>params[:friend\u id])”添加朋友没有任何问题。唯一的问题是添加了friends条件。我需要一个方法定义。好吧,如果我再看一遍你的问题,看起来它现在已经被回答了。如果不是这样,我想你应该重新措辞。