_follow
私の主な難しさは、と_unfollow
パーシャルが第11.2.3章から定義されたcreate
とメソッドとの関係を理解することから来ています。今のところ、ユーザーのフォローを解除する行為に焦点を当てます(フォローする行為はほとんど類似しているため)。destroy
RelationshipsController
Hartlは、の部分を次のunfollow
ように定義しています。
<%= form_for(current_user.relationships.find_by_followed_id(@user), html: { method: :delete }) do |f| %>
<%= f.submit "Unfollow", class: "btn btn-large" %>
<% end %>
および対応するdestroy
アクション自体:
def destroy
@user = Relationship.find(params[:id]).followed
current_user.unfollow!(@user)
redirect_to @user
end
私が理解するのに苦労しているのは:
- パーシャルの最初の行の
@user
変数..これはa)現在ページを表示しているアクションで定義されているか、 b)アクションで定義されていますか?ヘルパーはすでに破壊されるものを見つけているようですが、なぜアクションはコントローラーで破壊されるためにもう一度全体を見つける必要があるのですか?unfollow
show
destroy
form_for
@user
destroy
@user
- この
destroy
メソッドでは、@user
最初にリレーションシップIDを見つけることによってが見つかります。そもそもリレーションシップIDがURIに渡される方法がわかりません(フォローを解除する特定のユーザーが表示されるため) 。破壊する/users/2
ものを見つけるためにどのように使用されるかはわかりません。@user
各Relationshipテーブルにはid、followed_id、follower_idがあることは理解していますが、ここではid要素自体がどのように機能するかはわかりません。
読んでくれて、そして私の質問に答えてくれてありがとう!