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