2013-04-04 63 views
0

我已经从头开始创建消息收件箱。它已经工作了一个多星期了,现在它崩溃了,给我一个名为“MessagesController#index中的NoMethodError”的“private method`received_messages'”错误。控制器中的私人方法`received_messages'

由于某种原因,当我昨天使用应用程序(我不推送使用终端)推送新的更新到Github时,我的应用程序的某些部分停止工作,我必须修复。我知道当你推送文件时它不会改变你的代码,但是这不是第一次发生。任何人都知道我可以如何解决这个错误?

我只在点击提交新消息时收到错误消息。

消息控制器:

class MessagesController < ApplicationController 

    before_filter :set_user 

    def index 
    if params[:mailbox] == "sent" 
     @messages = @user.sent_messages 
    elsif params[:mailbox] == "inbox" 
     @messages = @user.received_messages 
    #elsif params[:mailbox] == "archieved" 
    # @messages = @user.archived_messages 
    end 
    end 

    def new 
    @message = Message.new 
    if params[:reply_to] 
     @reply_to = User.find_by_user_id(params[:reply_to]) 
     unless @reply_to.nil? 
     @message.recepient_id = @reply_to.user_id 
     end 
    end 
    end 

    def create 
    @message = Message.new(params[:message]) 
    @message.sender_id = @user_id 
    if @message.save 
     flash[:notice] = "Message has been sent" 
     redirect_to user_messages_path(current_user, :mailbox=>:inbox) 
    else 
     render :action => :new 
    end 
    end 

    def show 
    @message = Message.find(params[:id]) 
    @message.readingmessage if @message.recepient == current_user 
    end 

    def delete_multiple 
     if params[:delete] 
     params[:delete].each { |id| 
      @message = Message.find(id) 
      @message.mark_message_deleted(@message.id,@user_id) unless @message.nil? 
     } 
     flash[:notice] = "Messages deleted" 
     end 
     redirect_to user_messages_path(@user, @messages) 
    end 

    private 
    def set_user 
     @user = current_user 
    end 
end 
+1

'received_messages'现在在'用户'私人' – apneadiving 2013-04-04 15:10:16

+0

那么删除私有方法?那是在上周发生的,并且它工作正常(这是在昨天最后一次提交之前) – pwz2000 2013-04-04 15:12:04

+1

如果您在承诺难以诊断之前和之后都无法检查代码,但正如apneadiving所说,该方法似乎是私有的用户类。我假设你的代码中有一行读取'private',之后显示你的'received_messages'方法。要么移动'私人'行上面的方法,要么完全移除'私人'行。 – 2013-04-04 15:16:35

回答

1

作为apneadiving和Teeg解释的那样,一个私有方法挡住接收到的消息。我在文件顶部添加了一个新的私有方法给用户模型。将它移到底部,一切都很好。

确保您是否添加了一个私人方法将其放置在下面,以便它不会阻止其他功能。谢谢!