2015-01-08 2 views
0

두 div : users_list 및 메시지가 있습니다. DB 사용자 이름에서 메시지를 보낸 사람을 선택하는 코드 부분을 작성했습니다. 그러나 다음을 어떻게 할 수 있습니까?레일스의 같은 페이지에있는 사용자 이름을 클릭하여 메시지를 표시하는 방법은 무엇입니까?

나는 사용자 이름을 클릭하고 오른쪽 div에서 db 메시지 열, 텍스트를 선택하고 각 사용자에 대해 여기에 표시합니다.

enter image description here

어떻게 다음을 할 수 있습니까? 답변을 작성할 수 있습니다.

def show_message 
    Message.all_messages(session[:username]).from 
end 

function message_for(username){ 
    $.ajax({ 
     url: '/show_message', 
     method: 'POST', 
     data: { 
      to: username 
     }, 
     success: function(response){ 
      alert(response); 
     } 
    }) 
} 

Message.rb 모델 DEF :

<% @users_list.each do |user| %> 
    <li> 
     <%= user.message_for %> 
    </li> 
<% end %> 

나는 코드를 쓴

def self.all_messages(to) 
    @to = params[:to] 
    Message.where(to: to).order(date: :desc) 
end 

을 그리고 다음 오류 출력 :

Started POST "/show_message" for 81.21.82.67 at 2015-01-08 08:26:29 -0500 
Processing by MessagesController#show_message as */* 
Parameters: {"to"=>"alizade"} 
Completed 500 in 14ms 

ActionView::MissingTemplate (Missing template messages/show_message, application/show_message 

UPDATE를,451,515,내 경로 파일 :

resources :users 
resources :bookworms 
resources :sessions 
resources :covers 
resources :messages 

root 'bookworm#index' 

get '/profile' => 'bookworm#profile' 
get '/messages' => 'messages#index' 
get '/login' => 'users#login' 

post '/show_messages' => 'messages#show_message' 
+0

JS 다음 경로 파일

get '/show_message' => 'messages#show_message' 

에 경로를 정의하고? 나 같은 경로 정의를 말해 줄 수 –

+0

@ TriveniBadgujar 오케이. 메소드 행을 삭제했습니다. 내 질문을 업데이트하고 경로 파일 내용을 추가했습니다. –

+0

여기 누구입니까? –

답변

0

코드는 POST 요청으로 정의하는 이유

function message_for(username){ 
    $.ajax({ 
     url: '/show_message', 
     method: 'GET', 
     success: function(response){ 
      alert(response); 
     } 
    }) 
} 
+0

데이터를 설명해 주시겠습니까? {id : username}? 그것을 클릭하면'username' 함수를 보냅니다. 나중에 work/show_message를 시작합니다. 사용자 이름 데이터가이 def와 어떤 관련이 있습니까? 내 데이터에 대한 오류는 다음과 같습니다. {to : username} : MessagesController # show_message로 처리 */* 매개 변수 : { "to"= "alizade"} 완료 됨 500 in 6ms ArgumentError 인자들 (1..2에 대한 0)) : app/controllers/messages_controller.rb : 18 :'show_message ' –

+0

그럼 어떤 근거로 메시지를 가져올 건가요? 귀하의 요구 사항을 이해함에 따라 사용자에게 메시지를 보여주고 싶습니다. 그럼 어떻게 사용자를 얻을 것인가? 사용자 ID 또는 이름을 전달해야합니다. 필요 없다면 그냥 제거하십시오. –

+0

DB 테이블 (id, to, from, message, date)이 있습니다. 사용자 (FROM)를 보내는 테이블 - 메시지 -에서 가져 가고 싶은 사용자를 클릭하십시오. 내가 어떻게 해? 질문이 있으시면 저에게 물어보십시오. 나는 그 질문을 갱신했다. 그리고 GET 할 필요가 없습니다. URL을 변경하지 않고 POST 메서드가 필요합니다. –

관련 문제