2016-11-28 9 views
0

私はTwitterのクローンを開発するためにレールを使用しています。私はデータベースに「フォロー」レコードを正しく追加する機能を持っていますが、そのユーザーを「アンフォロー」しようとするとエラーが発生します。Ruby on Rails - 削除の問題がないルート

ヘルパーメソッド

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 %> 

エラー

Noルート一致{:アクション=> "ショー"、:コントローラ=> "次":ユーザーを=> 1} 必要なキーがありません:[:id]

私は以下のリソースを使用しています:ルートに従います

私は何かをキャッチしていないと確信していますが、すべてが正しいようです。

+0

ルートファイルには何がありますか?どのルートを現在リクエストしていますか?貼り付けたビューがshow.html.erbの場合、おそらくparamsやshowアクションの何かが間違っているでしょう。 – Laser

答えて

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

エラーが発生した場合、jankyが表示されます。試してみましたか:

follow_path(:id => find_user(user)) 

しかし、デバッグが難しい情報があるとします。

関連する問題