我如何在我的应用程序中处理has_friendship gem?

时间:2018-05-28 22:58:15

标签: ruby-on-rails rubygems

我刚开始使用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。但是我如何得到我希望与之成为朋友的用户?

2 个答案:

答案 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模型中。如果您可以共享更多代码,那么人们可以更轻松地提供帮助。