2017-02-09 6 views
0

私のアプリをrails3からrails4にアップグレードしています。 friendship.controller.rb私はこの行を持っています @friend = User.find(params [:friend_id]) 友人の表の friend_idの値に対応するidを持つ友人を確かめてください。 空白が返されます。 User.find(params [:id])は、友情のIDである340を返しますRails4が予想通りに動作しないのを見つけました

アイデア?あなたはwherefind_by_attributeを使用することができ、他のパラメータで検索したい場合は

enter code here 
    `class FriendshipController < ApplicationController 
     include ProfileHelper 
     before_filter :setup_friends

def create Friendship.request(@user, @friend) user = @user friend = @friend #MakeMailer.friend_request(user,friend).deliver flash[:notice] = "Friend request sent." redirect_to user_path(@user.id) end def accept if @user.requested_friends.include?(@friend) Friendship.accept(@friend, @user) flash[:notice] = "Friendship with #{@friend.login} accepted!" else flash[:notice] = "No friendship request from #{@friend.login}." end redirect_to user_path(@user.id) end def decline if @user.requested_friends.include?(@friend) Friendship.breakup(@user, @friend) flash[:notice] = "Friendship with #{@friend.login} declined" else flash[:notice] = "No friendship request from #{@friend.login}." end redirect_to user_path(@user.id) end def cancel if @user.pending_friends.include?(@friend) Friendship.breakup(@user, @friend) flash[:notice] = "Friendship request canceled." else flash[:notice] = "No request for friendship with #{@friend.login}" end redirect_to user_path(@user.id) end def delete if @user.friends.include?(@friend) Friendship.breakup(@user, @friend) flash[:notice] = "Friendship with #{@friend.login} deleted!" else flash[:notice] = "You aren't friends with #{@friend.login}" end redirect_to user_path(@user.id) end private def setup_friends @user = @current_user @friend = User.where(:id => params[:friend_id]) end `

`

+0

あなたは友情コントローラ用のコードを投稿することができますか? –

+0

完了しました – gleb

+0

があなたのユーザーと友情モデルに関係していることを願っていますか?どんな関係?そうであれば 'current_user.friend.fields_of_friend_table'で直接アクセスでき、deviseを使用している場合はcurrent_userに@を使用する必要はありません。テーブルが関連している場合@userオブジェクトを使用することができます –

答えて

0

User.find(id_of_user)方法は、デフォルトではない他の属性によって、ユーザのIDを取ります。

User.where(:friend_id => params[:friend_id])または

User.find_by_friend_id(params[:friend_id)

+0

User.find_by_friend_id(params [:friend_id])は "未定義メソッド' find_by_friend_id '"を返しますUser.where(:friend_id => params [:friend_id])は結果を返します – gleb

関連する問題