2011-11-02 26 views
0

在我relationships_controller我有以下幾點:Rails的控制器保存錯誤值到DB

class RelationshipsController < ApplicationController 

    def new 
    @user = User.find_by_id(params[:user_id]) 
    @relationship = Relationship.new 

    end 

    def create 
    @user = User.find_by_id(params[:user_id]) 
    @relationship = Relationship.new(params[:relationship]) 
    @relationship.rel_id = params[:user_id] 
    @relationship.user_id = current_user 

    @event = Event.new 
    @event.user_id = @user 
    @event.user_id = current_user 
    @event.m_type = 'relationship' 
    @event.text = 'wants to be friends with you.' 
    @event.save 

    @message = Message.new 
    @message.sender_id = current_user 
    @message.reciever_id = @user 
    @message.subject = "New Friend Request" 
    @message.body = "Hello, \n I'd like to connect with you as..." 
    @message.save 


    if @relationship.save 
     redirect_to root_url, :notice => "Signed Up!" 
    else 
     render "new" 
    end 
end 
end 

事件和關係得到保存有正確的價值觀,但無論我做什麼總是@message被保存1 sender_id和receiver_id。作爲一個測試,我在那裏和那些工作中硬編碼了值,那麼在@evernts和@message之間發生了什麼以改變這些值?

回答

3
@message.sender_id = current_user.id 

@message.sender = current_user 

但不是

@message.sender_id = current_user 

您正在將對象分配給整數

2

您試圖將_id字段設置爲實際的ActiveRecord對象而不是整數。相反,嘗試無論是這樣的:

@message.sender = current_user 
@message.receiver = @user 

或者:

@message.sender_id = current_user.id 
@message.receiver_id = @user.id