2017-02-09 24 views
0

我正在將我的應用程序從rails3升級到rails4。 在friendship.controller.rb我有行 @friend = User.find(params [:friend_id]) 當然,這應該標識好友表中的friend_id的值爲 friend_id的id。 它返回一個空白。 User.find(params [:id])返回340這是友誼的ID在Rails4中發現行爲不如預期

任何想法?

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'直接訪問,如果您正在使用設計,則不需要使用@作爲current_user。或者你可以使用@user對象,如果表是相關的 –

回答

0

User.find(id_of_user)方法在默認情況下沒有任何其他的屬性,如果你想通過其他參數來搜索您可以使用wherefind_by_attribute需要的用戶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