0

我正在尝试按照以下链接构建一个友谊系统:如何在 Rails 3 中为社交网络应用程序实现友谊模型?. 然而代码似乎已经过时了,我可能会改变它,我想做的只是建立一个关系,但这似乎不起作用。

所以这里是我的创作

  #Send a friendship request
  def create
    Friendship.request(@customer, @friend)
    redirect_to friendships_path
  end

然后从技术上讲,它将调用位于模型中的方法请求,该模型已在上一篇文章中实现。

  def self.request(customer, friend)
    unless customer == friend or Friendship.exists?(customer, friend)
      transaction do
        create(:customer => customer, :friend => friend, :status => 'pending')
        create(:customer => friend, :friend => customer, :status => 'requested')
      end
    end
  end

我也将这些添加到模型中

attr_accessible :status, :customer_id, :friend_id, :customer, :friend

然而,友谊并没有建立起来。有什么理由不呢?我称关系已跟随

<%= link_to "Add friend", friendships_path(:friend_id => customer), :method => :post %>
4

1 回答 1

0

您需要将@customer 和@friend 分开。在您的链接中,您将 :friend_id 设置为客户,而您从不设置 @customer id。

尝试这个:

def create
  @customer = current_account
  @friend = Account.find(params[:friend_id])
  Friendship.request(@customer, @friend)
  redirect
end

在你需要的 link_to 中:

<%= link_to "Add Friend", friendships_path(:friend_id => friend),: method => :post %>
于 2012-08-27T19:24:56.340 回答