2016-12-17 38 views
0

在url application.co/users/2我有一個表格刪除current_useruser 2之間的關係。該窗體的代碼是:params散列的請求不同得到

<%= form_for(current_user.active_relationships.find_by(followed_id: @user.id), html: { method: :delete }) do |f| %> 
    <%= f.submit "Unfollow", class: "btn" %> 
<% end %> 

關係控制器的破壞作用是:

def destroy 
    user = Relationship.find(params[:id]).followed 
    current_user.unfollow(user) 
    redirect_to user 
    end 

爲什麼動作依賴於params[:id]代表的關係ID的假設?我認爲params[:id]代表了網址中的數字2。
請參閱Michael Hartl的教程中的link1link2

回答

1

因爲您初始化form_for與對象Relationship類不User類。

還有就是返回Relationship對象

current_user.active_relationships.find_by(followed_id: @user.id)