Я пытаюсь настроить почтовый ящик почтового ящика. Это в основном установки, но я получаю следующее сообщение об ошибке, когда я отправить сообщение, и он пытается отобразить страницу БЕСЕДЫОшибка активной записи почтового ящика на странице разговоров
Couldn't find Mailboxer::Conversation with 'id'=2 [WHERE "mailboxer_notifications"."type" = 'Mailboxer::Message' AND "mailboxer_receipts"."receiver_id" = ? AND "mailboxer_receipts"."receiver_type" = ?]
это выдвигает на первый план этой линии кодирования в контроллере разговоров в качестве точки ошибки
def get_conversation
@conversation ||= @mailbox.conversations.find(params[:id])
end
здесь контроллер беседы
class ConversationsController < ApplicationController
before_action :authenticate_user
before_action :get_mailbox
before_action :get_conversation, except: [:index]
before_action :get_box, only: [:index]
before_action :get_conversation, except: [:index, :empty_trash]
def index
@user = current_user
if @box.eql? "inbox"
@conversations = @mailbox.inbox
elsif @box.eql? "sent"
@conversations = @mailbox.sentbox
else
@conversations = @mailbox.trash
end
@conversations = @conversations.paginate(page: params[:page], per_page: 10)
end
def show
@user = current_user
end
def reply
@user = current_user
current_user.reply_to_conversation(@conversation, params[:body])
flash[:success] = 'Reply sent'
redirect_to user_conversation_path
end
def destroy
@user = current_user
@conversation.move_to_trash(current_user)
flash[:success] = 'The conversation was moved to trash.'
redirect_to user_conversations_path
end
def restore
@user = current_user
@conversation.untrash(current_user)
flash[:success] = 'The conversation was restored.'
redirect_to user_conversations_path
end
def empty_trash
@user = current_user
@mailbox.trash.each do |conversation|
conversation.receipts_for(current_user).update_all(deleted: true)
end
flash[:success] = 'Your trash was cleaned!'
redirect_to user_conversations_path
end
def mark_as_read
@user = current_user
@conversation.mark_as_read(current_user)
flash[:success] = 'The conversation was marked as read.'
redirect_to user_conversations_path
end
private
def get_box
if params[:box].blank? or !["inbox","sent","trash"].include?(params[:box])
params[:box] = 'inbox'
end
@box = params[:box]
end
def get_mailbox
@mailbox ||= current_user.mailbox
end
def authenticate_user
unless ((current_user.id = params[:user_id]) unless current_user.nil?)
#if logged in go to their messages page else go to login path
flash[:error] = 'Looks like your not supposed to be there'
redirect_to login_path
end
end
def get_conversation
@conversation ||= @mailbox.conversations.find(params[:id])
end
end
основном я следовал this tutorial в установке mailboxer камень до
Я не уверен, почему я получаю сообщение об ошибке или что могу сделать, чтобы исправить это.
обновление
Новая ошибка
app/views/conversations/show.html.erb where line #19 raised:
No route matches {:action=>"reply", :controller=>"conversations", :id=>nil, :user_id=>"example-user"} missing required keys: [:id]
Parameters:
{"user_id"=>"example-user",
"id"=>"4"}
разговоров/show.html.erb
<% provide(:title, "Your Conversations") %>
<div class="panel panel-default">
<div class="panel-heading"><%= @conversation.subject %></div>
<div class="panel-body">
<div class="messages">
<% @conversation.receipts_for(current_user).each do |receipt| %>
<% message = receipt.message %>
<%= message.sender.username %>
says at <%= message.created_at.strftime("%-d %B %Y, %H:%M:%S") %>
<%= message.body %>
<% end %>
</div>
</div>
</div>
<%= form_tag reply_user_conversation_path(@user, @conversation), method: :post do %> <!-- line 19 -->
<div class="form-group">
<%= text_area_tag 'body', nil, cols: 3, class: 'form-control', placeholder: 'Type something...', required: true %>
</div>
<%= submit_tag "Send Message", class: 'btn btn-primary' %>
<% end %>
Кажется, работает, у меня есть другая ошибка теперь это одна ошибка не маршрут, потому что он думает, что его 'недостающие необходимые ключи: [: идентификатор]' и ниже, что у него есть параметры '{" user_id "=>" example-user ", " id "=>" 4 "}', поэтому я не уверен, как он думает, что он отсутствует, когда он находится в параметрах – Rob
. вы обновляете свой пост с помощью этой новой ошибки –
У меня теперь обновляется мой вопрос :) – Rob