わからないこと
Ruby on Rails チュートリアル14章「14.2.4 [Follow] ボタン (基本編)」
のdestroyアクション実装の部分でわからないところがあるので質問させてください。
user = Relationship.find(params[:id).followed
ということは、
「Relatihonshipテーブルにおいて、idカラムがparams[:id]のフォロー中ユーザー」をuserとしているということですよね。
この場合、unfollowボタンのビュー記述部分に記載している「followed_id:@user.id」が上記のparams[:id]に当てはまるという理解で合っていますでしょうか?
そして、合っていたとしたら、find(params[:follwed_id]).followedと書かないのはなぜでしょうか?
雑多な説明で恐縮ですが、よろしくおねがいします・・・!
該当のソースコード
リスト 14.33: Relationshipsコントローラ
app/controllers/relationships_controller.rb
class RelationshipsController < ApplicationController before_action :logged_in_user def create user = User.find(params[:followed_id]) current_user.follow(user) redirect_to user end def destroy user = Relationship.find(params[:id]).followed #ここの部分 current_user.unfollow(user) redirect_to user end end
unfollowボタンのビュー記述部分
<%= form_for(current_user.active_relationships.find_by(followed_id: @user.id), html:{ method: :delete}) do |f| %> <%= f.submit "Unfollow", class: "btn" %> <% end %>
user.rb
def unfollow(other_user) active_relationships.find_by(followed_id: other_user.id).destroy end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/17 12:05
2019/04/17 13:16 編集
2019/04/17 23:58