2016-11-28 76 views
0

我使用rails來開發Twitter的克隆。我有一個函數可以正確地向數據庫添加一個'Follow'記錄,但是當我嘗試'取消關注'那個用戶時,我收到了一個錯誤。Ruby on Rails - 沒有路由刪除問題

Helper方法

def find_user(user) 
    user = User.where(email: user.email).first 
    #id = user.id 
    return user.id 
end 


def destroy 
    #@follow = Follow.where('user_id = ? AND follows = ?',current_user.id,params[:user_id]).first 
    @follow = params[:user] 
    p "follow to delete "[email protected] 
    #@follow.destroy 
    redirect_to root_path 
end 

查看

<% @users.try(:each) do |user| %> 
     <tr> 
      <td><%= user.first_name + " " + user.last_name %></td> 
      <td><%= user.email %></td> 
      <td> 
      <% if follow = user.follows.find_by(follows: user.id) %> 
       <%= link_to 'Unfollow', follow_path(:user => find_user(user)), method: :delete %> 

      <% else %> 
       <%= link_to 'Follow', follows_path({user_id: user.id}), method: 'post',class: "btn btn-primary" %> 
      <% end %> 
      </td> 
     </tr> 
    <% end %> 

錯誤

沒有路由匹配{:行動=> 「節目」,:控制器=> 「跟隨」,:用戶=> 1} 缺少必需的鍵:[:id]

我使用的資源如下:

我確定我沒有捕捉到東西,但似乎一切正常。

+0

什麼是您的路線文件?你目前要求什麼路線?如果您粘貼的視圖是show.html.erb,那麼您可能在params或show動作中出現了一些問題。 – Laser

回答

0
follow_path(:user => find_user(user)) 

由於錯誤,看起來很好。你有沒有試過:

follow_path(:id => find_user(user)) 

鑑於缺乏信息難以調試,雖然。