2012-07-19 3 views
0

인덱스보기에서 확인한 모든 메시지를 문제없이 트러쉬 할 수 있습니다.
그러나 show보기에서 생성 된 링크는 /messages/discard.3에 대한 링크를 보여줍니다. 이 3은 ID 일 수 있습니다.경로를 올바르게 설정하는 방법

어떻게 작동합니까? 폐기/메시지에 연결되어야/3

내 파일이

routes.rb

get "messages/received" 
    get "messages/sent" 
    get "messages/trash" 
    get 'messages/:id' => 'messages#show', :as => :show_messages 

    match 'messages/new/:username', :to => 'messages#new', :as => :new_messages 
    match 'messages/deliver' => 'messages#deliver', :via => :post 
    match 'messages/discard' => 'messages#discard', :via => :post, :as => :discard_messages 
    match 'messages/untrash' => 'messages#untrash', :via => :post 

보기 1 (index.html.erb)

<%= form_tag(:action=> discard) do %> 
    <% @messages.each do |m| %> 
     <tr> 
     <td><%= check_box_tag "checked_items[#{m.id}]",m.id %></td> 
     <td><%= m.last_message.id %></td> 
     <td><%= 'unread' if m.is_unread?(current_user) %></td> 
     <td><%= m.last_message.created_at %></td> 
     <td><%= m.last_sender.username %></td> 
     <td><%= link_to m.subject, show_messages_path(m) %></td> 
     </tr> 
    <% end %> 

보기처럼 2 (show.html.erb)

<%= link_to 'Trash', discard_messages_path(@messages) %> 

사용자가 변경 시도 할 수

def discard 
     conversation = Conversation.find_all_by_id(params[:checked_items].keys) 
    if conversation 
     current_user.trash(conversation) 
     flash[:notice] = "Message sent to trash." 
    else 
     conversations = Conversation.find(params[:conversations]) 
     conversations.each { |c| current_user.trash(c) } 
     flash[:notice] = "Messages sent to trash." 
    end 
     redirect_to :back 
    end 

답변

0

messages_controller.rb :

resource :messages do 
    member do 
    #code 
    end 

    collection do 
    #code 
    end 
end 

그것은이다 : 나는 당신이 해야 할가 당신의 모든 경로를 변경하는 것입니다 어떻게 생각하지만

match 'messages/discard/:id' => 'messages#discard', :via => :post, :as => :discard_messages 

읽고 쉽게 유지

+0

감사합니다 !! 나는 당신의 첫 번째 제안으로 그것을 바 꾸었습니다. 하지만 라우팅 오류가 없음을 의미합니다 {: action => "discard", : controller => "messages"} :( – MKK

관련 문제