0

Michael Hartlのすばらしいチュートリアルのリスト11.36で、フォロー解除フォームをAJAXを使用するように変更していますが、[フォロー解除]ボタンをクリックすると次のエラーが発生し続けます。

ActionView::Template::Error (undefined method `model_name' for NilClass:Class):

ただし、フォームは機能します。「フォロー解除」をクリックすると、現在表示されているユーザーのフォローを解除します。したがって、フォーム宣言の@userは、フォームが送信されたときに有効であるようです。

<%= form_for(current_user.relationships.find_by_followed_id(@user),
         html: { method: :delete },
         remote: true) do |f| %>

しかし、「フォロー」フォームを読み込もうとすると、おそらく利用できなくなりますか?

私はこれを追跡するために長い間試みましたが、それを理解することができず、他の誰も同じ問題を投稿しているのを見たことがありません。

手がかりはありますか?

ありがとう。

4

3 に答える 3

0

よくわかりませんが、非同期呼び出しが機能し、次のユーザー参照がデータベースから正常に削除された場合、参照された@userはnilを指しています。これにより、この参照が削除されたばかりですか?

于 2012-10-26T21:50:45.393 に答える
0

Relationships コントローラーで次のアクションが定義されていますか?

def destroy
    @user = Relationship.find(params[:id]).followed
    current_user.unfollow!(@user)
    respond_to do |format|
      format.html { redirect_to @user }
      format.js
    end
  end
于 2012-10-26T21:57:26.223 に答える
0

ああ...ばかげたエラー。

app/views/relationships/create.js.erb のコードも app/views/relationships/destroy.js.erb にコピーしました。コピペミス。

誤報すみません。御時間ありがとうございます。

于 2012-10-26T21:59:17.573 に答える