2013-03-11 73 views
0

我几乎在那里,我试图找出其余的simple_private_messages插件。任何人都知道我能如何解决这个问题?当试图查看“已发送”消息时,没有路由匹配{:action =>“show”,:controller =>“users”}

这里是我的耙路输出

delete_selected_user_messages POST  /users/:user_id/messages/delete_select 
ed(.:format) messages#delete_selected 
       user_messages GET  /users/:user_id/messages(.:format) 
       messages#index 
           POST  /users/:user_id/messages(.:format) 
       messages#create 
       new_user_message GET  /users/:user_id/messages/new(.:format) 
       messages#new 
      edit_user_message GET  /users/:user_id/messages/:id/edit(.:fo 
rmat)   messages#edit 
        user_message GET  /users/:user_id/messages/:id(.:format) 
       messages#show 
           PUT  /users/:user_id/messages/:id(.:format) 
       messages#update 
           DELETE  /users/:user_id/messages/:id(.:format) 
       messages#destroy 
         users GET  /users(.:format) 
       users#index 
           POST  /users(.:format) 
       users#create 
         new_user GET  /users/new(.:format) 
       users#new 
        edit_user GET  /users/:id/edit(.:format) 
       users#edit 
          user GET  /users/:id(.:format) 
       users#show 
           PUT  /users/:id(.:format) 
       users#update 
           DELETE  /users/:id(.:format) 
       users#destroy 

这里是我的routes.db

resources :users do 
      resources :messages do 
       collection do 
       post :delete_selected 
       end 
      end 
      end 



    ActiveAdmin.routes(self) 

    devise_for :admin_users, ActiveAdmin::Devise.config 

    resources :users do 
    member do 
     get :following, :followers 
    end 
    end 
    resources :sessions, only: [:new, :create, :destroy] 
    resources :microposts, only: [:create, :destroy] 
    resources :relationships, only: [:create, :destroy] 
    resources :microposts do 
    resources :comments 

end 
    root to: 'static_pages#home' 

,这里是我的_sent.html.erb

<h2>Sent</h2> 
<table> 
    <tr> 
     <th>Delete?</th> 
     <th>Subject</th> 
     <th>To</th> 
     <th>Sent</th> 
    </tr> 
    <% if @messages.size == 0 %> 
     <tr> 
      <td colspan="4"> 
       No messages 
      </td> 
     </tr> 
    <% else %> 
     <% for message in @messages %> 
      <tr> 
       <td><%= check_box_tag "delete[]", message.id %></td> 
       <td><%= link_to h(message.subject), user_message_path(@user, message) %></td> 
      <td><%= link_to h(message.recipient_id), user_path(message.recipient) %></td> 
       <td><%=h message.created_at.to_s(:long) %></td> 
      </tr> 
     <% end %> 
     <tr> 
      <td colspan="4"> 
       <%= submit_tag "Delete" %> 
      </td> 
     </tr> 
    <% end %> 
</table> 
<%= link_to "Inbox", user_messages_path(@user)%> 

我试图让此链接工作(本地主机:3000 /用户/ 2 /消息?邮箱=发送) 但我收到此错误消息

Routing Error 

No route matches {:action=>"show", :controller=>"users"} 

回答

0

你的错误的最可能的原因是该行

user_path(message.recipient) 

有一个消息,其中收件人是零。检查数据库是否有这样的记录。

+0

当我今天早些时候测试时,有一些消息发送给nill收件人。将删除所有这些消息解决它,我该怎么做?我认为这是由别的东西引起的。 – syk 2013-03-11 08:49:41

+0

hmm。你可以启动控制台并运行'Message.where(recipient_id:nil).delete_all'来删除它们。运行后,你仍然得到同样的错误,让我知道这里:) – jvnill 2013-03-11 08:54:15

+0

那工作!....谢谢。但是,如何防止将来的邮件进入无收件人?现在,我的“收件人”字段只是一个打开的文本字段,因此用户需要输入正确的用户名。 – syk 2013-03-11 08:56:58

相关问题