1

フレンドコントローラーとしてamistadを使用しています。今私は友達を追加したいのですが、私が得るエラーは次のとおりです:

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id..

これは友達を追加するための私のリンクです:

<section>
      <h1>
        <%= @user.username %>
      </h1>

    <% unless current_user == @user  %>
<%= link_to "Arkadaşlarıma Ekle", friends_path(:friend_id => @user), :method => :post,class: "btn btn-large btn-primary" %>
    <%end %>
      </section>

と私の friends_controller.rb:

class FriendshipsController < ApplicationController

  before_filter :authenticate_user!

  def index
    @friends = current_user.friends
    @pending_invited_by = current_user.pending_invited_by
    @pending_invited = current_user.pending_invited
  end

  def new
    @users = User.all :conditions => ["id != ?", current_user.id]
  end

  def create
    invitee = User.find_by_id(params[:user_id])
    if current_user.invite invitee
      redirect_to new_friend_path, :notice => "Successfully invited friend!"
    else
      redirect_to new_friend_path, :notice => "Sorry! You can't invite that user!"
    end
  end

  def update
    inviter = User.find_by_id(params[:id])
    if current_user.approve inviter
      redirect_to new_friend_path, :notice => "Successfully confirmed friend!"
    else
      redirect_to new_friend_path, :notice => "Sorry! Could not confirm friend!"
    end
  end

  def requests
    @pending_requests = current_user.pending_invited_by
  end

  def invites
    @pending_invites = current_user.pending_invited
  end

  def destroy
    user = User.find_by_id(params[:id])
    if current_user.remove_friendship user
      redirect_to friends_path, :notice => "Successfully removed friend!"
    else
      redirect_to friends_path, :notice => "Sorry, couldn't remove friend!"
    end
  end 

end 

amistad の正しいビューを配置するにはどうすればよいですか? チュートリアルはありますか?

4

1 に答える 1

0

コントローラは少し厄介ですが、間違いはパラメータ「friend_id」を送信しているのに、作成アクションで「user_id」というパラメータを使用してユーザーを読み込もうとしていることだと思います。おそらく方法:

current_user.invite invitee

招待者がnilで呼び出されているため、このエラーが発生します。

それが役に立てば幸い!:)

于 2012-07-18T11:41:43.610 に答える