我刚开始使用rails,我希望我的用户能够彼此交朋友,所以我找到了gem has_friendship github: has_friendship。我做了指示,并在rails c控制台中测试了一切。一切都很好。但是现在我有点困惑如何在我的应用程序中处理它,以及如何将它集成到我的应用程序中。我需要一个额外的友谊控制器/模型/视图,或者我在哪里可以定义像@user1.friend_request(@user2)
这样的方法,我如何获得user2的id?
非常感谢!
更新
例如:我想过用链接显示我的用户index.html.erb中的每个用户。但是,如何通过按此链接触发friend_request
方法?
<% @users.each do |user| %>
<h1><%= user.username %> <%= link_to "Add Friend", user_add_friend_path(:user_id) %></h1>
<%end%>
我也在我的routes.rb
中进行了编辑 resources :users do
get 'add_friend'
end
并在我的users_controller.rb
中创建了一个方法 def add_friend
if current_user.friend_request(@friend)
redirect_to users_path, notice: "Friend request successfully sent."
else
redirect_to users_path, notice: "There was an error sending the friend request"
end
end
现在我收到noMethod错误,因为我还没有定义@friend。但是我如何得到我希望与之成为朋友的用户?
答案 0 :(得分:1)
您不需要任何其他模型,只需要用户,宝石就会生成友谊模型
只需将has_friendship放入模型用户:
class User <ActiveRecord :: Base
has_friendship
end
方法:
# @mac sends a friend request to @dee
@ mac.friend_request (@dee)
# @dee can accept the friend request
@ dee.accept_request (@mac)
# @dee can also decline the friend request
@ dee.decline_request (@mac)
# @dee removes @mac from its friends
@ dee.remove_friend (@mac)
它们由gem
生成答案 1 :(得分:0)
酷 - 听起来像一个有趣的宝石!看起来在运行has_friendship
生成器之后,您需要运行迁移,这将改变您的架构表,并且您需要将has_friendship
添加到User
模型中。如果您可以共享更多代码,那么人们可以更轻松地提供帮助。