Ruby on Rails 14章フォロー・フォロー解除の

今日は14章のフォローとアンフォロー(解除)の機能開発

 

 

●ルーティング
resources :users do
member do
get :following, :followers
end
end

とあるユーザのフォロー一覧と、フォロワー一覧になる。
URLは /users/1/following や /users/1/followers

following_user_path(@user)
followers_user_path(@user)

 

●フォローする、解除するパーシャルのform_for
[誰]をフォロー・フォロー解除という情報をhiddenに入れる必要がある。

 

<%= form_for(current_user.active_relationships.build) do |f| %>
<div><%= hidden_field_tag :followed_id, @user.id %></div>
<%= f.submit “Follow”, class: “btn btn-primary” %>
<% end %>

新たにフォローをするので、フォローする相手の情報(followed)をhiddenに。

<form class=”new_relationship” id=”new_relationship” action=”/relationships” accept-charset=”UTF-8″ method=”post”>
<input name=”utf8″ type=”hidden” value=”✓”>
<input type=”hidden” name=”authenticity_token” value=”fkSCDs9CqQxif0TCczEbbwtpXYn8NlpWHIuRtRN1JBJxqOmunwG0sMBpHuu/oCqDKIu20Mdjt76aPMr4k16zeg==”>
<div>
<input type=”hidden” name=”followed_id” id=”followed_id” value=”2″>
</div>
<input type=”submit” name=”commit” value=”Follow” class=”btn btn-priamry” data-disable-with=”Follow”>
</form>

 

 

<%= form_for(current_user.active_relationships.find_by(followed_id: @user.id),
html: { method: :delete }) do |f| %>
<%= f.submit “Unfollow”, class: “btn” %>
<% end %>
削除の場合は「Relationship」のIDを特定してdestroyできるようにしている。

<form class=”edit_relationship” id=”edit_relationship_4″ action=”/relationships/4″ accept-charset=”UTF-8″ data-remote=”true” method=”post”>
<input name=”utf8″ type=”hidden” value=”✓”>
<input type=”hidden” name=”_method” value=”delete”>
<input type=”submit” name=”commit” value=”unFollow” class=”btn” data-disable-with=”unFollow”>
</form>

 

 

コメントを残す

メールアドレスが公開されることはありません。