초보자의 질문에 대한 죄송하지만, 내 메시지 컨트롤러에 메시지 # 새로운 액션을 참조하는 다음과 같은 오류 받고 있어요 :조상 보석과 Message_controller
액티브 :: RecordNotFound를 (ID가없는 사용자를 찾을 수 없습니다) 응용 프로그램/컨트롤러/messages_controller.rb : 18 : ''새의
@recipient = User.find(params[:user_id])
I는 수신 된 메시지에 회신 할 때 나는 특히 내 messages_controller의 조상 보석을 통합하기 위해 노력하고있어 사용자받은 편지함 (index.html.erb). 현재 ID가 전달되지 않았지만 누구도 비슷한 문제가 발생했는지 이해합니다. 아래 코드 :
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 "새/메시지/PARENT_ID = 19?"(보기)
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 시작 127.0.0.1에 대한 2014년 9월 27일 15시 41분에서 : 18 -0400 MessagesController # new as HTML 매개 변수 : { "parent_id"=> "19"} 메시지로드 (0.1ms) SELECT "메시지". * FROM "messages"WHERE "messages". "id" =? 응용 프로그램/컨트롤러/messages_controller.rb : 18 : LIMIT 1 [[ "ID", 19]] 에서 11ms
액티브 :: RecordNotFound (ID가없는 사용자를 찾을 수 없습니다)에서 404 찾을 수 없음을 완료`에 새로운 '
렌더링 /Users/sikendersingh/.rvm/gems/ruby-2.1.2/gems/actionpack-4.1.4/lib/action_dispatch/middleware/templates/rescues/_source.erb (를 0.5ms) 렌더링 /Users/sikendersingh/.rvm/gems/ruby-2.1.2/gems/actionpack-4.1.4/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.0ms) Rendered/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) Rendered /Users/sikendersingh/.rvm/gems/ruby-2.1.2/gems/actionpack-4.1.4/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (13.8ms)
params [: user_id]가 컨트롤러 (params [: user_id] == nil)에 전달되지 않으면 이해가되지 않습니다. 오류가 발생합니다. User.find (nil) –
user_id 매개 변수가 전달되지 않으면이 요청을 생성하는보기가 표시되어야합니다. OTOH, user_id가 전달되는지 확실하지 않은 경우 로그를 살펴보십시오. 새 요청에 대한 로그를 붙여 넣으면 도움이됩니다. – brahmana
브라흐마 나는 귀하가 언급 한 내용을 추가했습니다. 그래서 나는 조상 보석을 위해 railscast 에피소드 # 262를 따라 가려고 노력했다. 이것이 컨트롤러가 parent_id 매개 변수를 전달하는 이유입니다. 나의 목표는 회신 조치를 취하고 조상의 모든 이메일을 표시 할 수 있도록하는 것입니다. –