2013-04-04 4 views
0

Я создал почтовый ящик сообщений с нуля. Он работает более недели, и теперь он сломался, давая мне ошибку «private method` received_messages »с заголовком« NoMethodError в MessageController # index ».частный метод `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' теперь закрыт в' User' – apneadiving

+0

Итак, удалите частный метод? Это было на прошлой неделе, и он работал нормально (что было до последнего коммита вчера) – pwz2000

+1

Без возможности проверить код до и после вашего фиксации, его трудно диагностировать, но, как сказал apneadiving, метод кажется закрытым для пользовательский класс. Я предполагаю, что в вашем коде есть строка, которая читает 'private', после чего появляется ваш метод' received_messages'. Либо переместите метод выше строки 'private', либо полностью удалите строку' private'. –

ответ

1

В apneadiving и Тиг объяснено, закрытый метод блокирует полученные сообщения. Я добавил новый закрытый метод для модели пользователя, которая была поверх файла. Переместил его на дно, и все снова отлично работает.

Убедитесь, что вы добавили закрытый метод, чтобы разместить его ниже, чтобы он не блокировал другие функции. Благодаря!

Смежные вопросы