Приносим извинения за вопрос новичка, но я получаю следующую ошибку со ссылкой на сообщение # новое действие в моем контроллере сообщений:
ActiveRecord :: RecordNotFound (не удалось найти пользователя без идентификатора): app / controllers / messages_controller.rb: 18: в `новом '
@recipient = User.find(params[:user_id])
Я пытаюсь включить жемчужину предков в свой messages_controller, в частности, когда я пытаюсь ответить на сообщение, полученное в папке «Входящие» пользователя (index.html.erb). Я понимаю, что в настоящее время идентификатор не передается, но сталкивался ли кто-нибудь с подобной проблемой? Код ниже:
class MessagesController < ApplicationController
def index
@messages = current_user.to_messages
end
def outbox
type = (params[:type] && params[:type] == "sent" ) ? "from_messages" : "to_messages"
@messages = current_user.from_messages
end
def show
@message = Message.find params[:id]
end
def new
@message = Message.new(:parent_id => params[:parent_id])
@recipient = User.find(params[:user_id])
end
def create
@message = Message.new message_params
@message.sender_id = current_user.id
if @message.save
flash[:success] = "Your message has been sent!"
redirect_to users_path
else
flash[:failure] = "Please try again."
redirect_to users_path
end
end
def destroy
@message = Message.find(params[:id])
@message.destroy
redirect_to messages_path
end
private
def message_params
params.require(:message).permit(:content, :sender_id, :recipient_id, :parent_id)
end
end
show.html.erb (просмотреть)
From: <%= link_to @message.recipient.first_name + " " + @message.recipient.last_name, user_path(@message.recipient.id) %>,
To: <%= @message.sender.first_name + " " + @message.sender.last_name %>,
Message: <%= @message.content %>
<% if @message.recipient_id == current_user.id %>
<%= link_to "Reply", new_message_path(:parent_id => @message) %>
<% end %>
Начат GET "/ messages / new? Parent_id = 19" для 127.0.0.1 в 2014-09-27 15:41:18 -0400 Обработка MessagesController # new как параметры HTML: {"parent_id" => "19"} Загрузка сообщения (0,1 мс) ВЫБЕРИТЕ "сообщения". * ИЗ "сообщений" ГДЕ "сообщения". "Id" =? LIMIT 1 [["id", 19]] Выполнено 404, не найдено за 11 мс.
ActiveRecord :: RecordNotFound (не удалось найти пользователя без идентификатора): app / controllers / messages_controller.rb: 18: в `новом '
Обработано /Users/sikendersingh/.rvm/gems/ruby-2.1.2/gems/actionpack-4.1.4/lib/action_dispatch/middleware/templates/rescues/_source.erb (0,5 мс) Обработано /Users/sikendersingh/.rvm /gems/ruby-2.1.2/gems/actionpack-4.1.4/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.0ms) Обработано /Users/sikendersingh/.rvm/gems/ruby-2.1 .2 / gems / actionpack-4.1.4 / lib / action_dispatch / middleware / templates / rescues / _request_and_response.html.erb (1.1ms) Обработано /Users/sikendersingh/.rvm/gems/ruby-2.1.2/gems/actionpack -4.1.4 / lib / action_dispatch / middleware / templates / rescues / diagnostics.erb в rescues / layout (13,8 мс)