2013-05-01 84 views
0

我没有触及有关消息控制器,型号,或查看任何东西,但NoMethodError在消息#指数 - 对零未定义的方法`名”:NilClass

前工作正常后,我得到这个错误这里的控制器

class MessagesController < ApplicationController 
     before_filter :set_user 
     before_filter :current_user 
     before_filter :ensure_current_user 

    def index 
    if params[:mailbox] == "sent" 
     @messages = @user.sent_messages 
    else 
     @messages = @user.received_messages 
    end 
end 

这里的景色

<h2>Inbox (<%= current_user.unread_message_count %>)</h2> 
<table> 
    <tr> 
     <th>Delete?</th> 
     <th>Subject</th> 
     <th>Sender</th> 
     <th>Sent</th> 
    </tr><br> 
    <% if @messages.size == 0 %> 
     <tr> 
      <td colspan="4"> 
       <center>No messages 
      </td> 
     </tr> 
    <% else %><br> 
     <% for message in @messages %> 
      <tr> 
       <td><%= check_box_tag "delete[]", message.id %></td> 
       <td> 
        <% if message.message_read? %> 
         <%= link_to h(message.subject), user_message_path(@user, message) %> 
        <% else %> 
         <%= link_to "#{h(message.subject)} (unread)", user_message_path(@user, message) %> 
        <% end %> 
       </td> 
       <td><%= link_to h(message.sender.name), user_path(message.sender) %></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 "Sent", user_messages_path(@user, :mailbox => :sent)%> | 
<%= link_to "Compose", new_user_message_path(@user)%> 

,导致该错误的代码行是

<td><%= link_to h(message.sender.name), user_path(message.sender) %></td> 

的错误消息是

NoMethodError in Messages#index 
undefined method `name' for nil:NilClass 

下面是完整的跟踪如果这有助于

app/views/messages/_inbox.html.erb:26:in `block in _app_views_messages__inbox_html_erb__643493877_49932840' 
activerecord (3.2.3) lib/active_record/associations/collection_proxy.rb:89:in `each' 
activerecord (3.2.3) lib/active_record/associations/collection_proxy.rb:89:in `method_missing' 
app/views/messages/_inbox.html.erb:16:in `_app_views_messages__inbox_html_erb__643493877_49932840' 
actionpack (3.2.3) lib/action_view/template.rb:143:in `block in render' 
activesupport (3.2.3) lib/active_support/notifications.rb:125:in `instrument' 
actionpack (3.2.3) lib/action_view/template.rb:141:in `render' 
actionpack (3.2.3) lib/action_view/renderer/partial_renderer.rb:265:in `render_partial' 
actionpack (3.2.3) lib/action_view/renderer/partial_renderer.rb:238:in `block in render' 
actionpack (3.2.3) lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument' 
activesupport (3.2.3) lib/active_support/notifications.rb:123:in `block in instrument' 
activesupport (3.2.3) lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
activesupport (3.2.3) lib/active_support/notifications.rb:123:in `instrument' 
actionpack (3.2.3) lib/action_view/renderer/abstract_renderer.rb:38:in `instrument' 
actionpack (3.2.3) lib/action_view/renderer/partial_renderer.rb:237:in `render' 
actionpack (3.2.3) lib/action_view/renderer/renderer.rb:41:in `render_partial' 
actionpack (3.2.3) lib/action_view/renderer/renderer.rb:15:in `render' 
actionpack (3.2.3) lib/action_view/helpers/rendering_helper.rb:24:in `render' 
app/views/messages/index.html.erb:5:in `block in _app_views_messages_index_html_erb___119642823_49752672' 
actionpack (3.2.3) lib/action_view/helpers/capture_helper.rb:40:in `block in capture' 
actionpack (3.2.3) lib/action_view/helpers/capture_helper.rb:187:in `with_output_buffer' 
actionpack (3.2.3) lib/action_view/helpers/capture_helper.rb:40:in `capture' 
actionpack (3.2.3) lib/action_view/helpers/form_tag_helper.rb:662:in `form_tag_in_block' 
actionpack (3.2.3) lib/action_view/helpers/form_tag_helper.rb:70:in `form_tag' 
app/views/messages/index.html.erb:1:in `_app_views_messages_index_html_erb___119642823_49752672' 
actionpack (3.2.3) lib/action_view/template.rb:143:in `block in render' 
activesupport (3.2.3) lib/active_support/notifications.rb:125:in `instrument' 
actionpack (3.2.3) lib/action_view/template.rb:141:in `render' 
actionpack (3.2.3) lib/action_view/renderer/template_renderer.rb:47:in `block (2 levels) in render_template' 
actionpack (3.2.3) lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument' 
activesupport (3.2.3) lib/active_support/notifications.rb:123:in `block in instrument' 
activesupport (3.2.3) lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
activesupport (3.2.3) lib/active_support/notifications.rb:123:in `instrument' 
actionpack (3.2.3) lib/action_view/renderer/abstract_renderer.rb:38:in `instrument' 
actionpack (3.2.3) lib/action_view/renderer/template_renderer.rb:46:in `block in render_template' 
actionpack (3.2.3) lib/action_view/renderer/template_renderer.rb:54:in `render_with_layout' 
actionpack (3.2.3) lib/action_view/renderer/template_renderer.rb:45:in `render_template' 
actionpack (3.2.3) lib/action_view/renderer/template_renderer.rb:18:in `render' 
actionpack (3.2.3) lib/action_view/renderer/renderer.rb:36:in `render_template' 
actionpack (3.2.3) lib/action_view/renderer/renderer.rb:17:in `render' 
actionpack (3.2.3) lib/abstract_controller/rendering.rb:110:in `_render_template' 
actionpack (3.2.3) lib/action_controller/metal/streaming.rb:225:in `_render_template' 
actionpack (3.2.3) lib/abstract_controller/rendering.rb:103:in `render_to_body' 
actionpack (3.2.3) lib/action_controller/metal/renderers.rb:28:in `render_to_body' 
actionpack (3.2.3) lib/action_controller/metal/compatibility.rb:50:in `render_to_body' 
actionpack (3.2.3) lib/abstract_controller/rendering.rb:88:in `render' 
actionpack (3.2.3) lib/action_controller/metal/rendering.rb:16:in `render' 
actionpack (3.2.3) lib/action_controller/metal/instrumentation.rb:40:in `block (2 levels) in render' 
activesupport (3.2.3) lib/active_support/core_ext/benchmark.rb:5:in `block in ms' 
C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/benchmark.rb:295:in `realtime' 
activesupport (3.2.3) lib/active_support/core_ext/benchmark.rb:5:in `ms' 
actionpack (3.2.3) lib/action_controller/metal/instrumentation.rb:40:in `block in render' 
actionpack (3.2.3) lib/action_controller/metal/instrumentation.rb:83:in `cleanup_view_runtime' 
activerecord (3.2.3) lib/active_record/railties/controller_runtime.rb:24:in `cleanup_view_runtime' 
sunspot_rails (2.0.0) lib/sunspot/rails/railties/controller_runtime.rb:15:in `cleanup_view_runtime' 
actionpack (3.2.3) lib/action_controller/metal/instrumentation.rb:39:in `render' 
actionpack (3.2.3) lib/action_controller/metal/implicit_render.rb:10:in `default_render' 
actionpack (3.2.3) lib/action_controller/metal/implicit_render.rb:5:in `send_action' 
actionpack (3.2.3) lib/abstract_controller/base.rb:167:in `process_action' 
actionpack (3.2.3) lib/action_controller/metal/rendering.rb:10:in `process_action' 
actionpack (3.2.3) lib/abstract_controller/callbacks.rb:18:in `block in process_action' 
activesupport (3.2.3) lib/active_support/callbacks.rb:469:in `_run__571822877__process_action__113176952__callbacks' 
activesupport (3.2.3) lib/active_support/callbacks.rb:405:in `__run_callback' 
activesupport (3.2.3) lib/active_support/callbacks.rb:385:in `_run_process_action_callbacks' 
activesupport (3.2.3) lib/active_support/callbacks.rb:81:in `run_callbacks' 
actionpack (3.2.3) lib/abstract_controller/callbacks.rb:17:in `process_action' 
actionpack (3.2.3) lib/action_controller/metal/rescue.rb:29:in `process_action' 
actionpack (3.2.3) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action' 
activesupport (3.2.3) lib/active_support/notifications.rb:123:in `block in instrument' 
activesupport (3.2.3) lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
activesupport (3.2.3) lib/active_support/notifications.rb:123:in `instrument' 
actionpack (3.2.3) lib/action_controller/metal/instrumentation.rb:29:in `process_action' 
actionpack (3.2.3) lib/action_controller/metal/params_wrapper.rb:205:in `process_action' 
activerecord (3.2.3) lib/active_record/railties/controller_runtime.rb:18:in `process_action' 
actionpack (3.2.3) lib/abstract_controller/base.rb:121:in `process' 
actionpack (3.2.3) lib/abstract_controller/rendering.rb:45:in `process' 
actionpack (3.2.3) lib/action_controller/metal.rb:203:in `dispatch' 
actionpack (3.2.3) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch' 
actionpack (3.2.3) lib/action_controller/metal.rb:246:in `block in action' 
actionpack (3.2.3) lib/action_dispatch/routing/route_set.rb:73:in `call' 
actionpack (3.2.3) lib/action_dispatch/routing/route_set.rb:73:in `dispatch' 
actionpack (3.2.3) lib/action_dispatch/routing/route_set.rb:36:in `call' 
journey (1.0.4) lib/journey/router.rb:68:in `block in call' 
journey (1.0.4) lib/journey/router.rb:56:in `each' 
journey (1.0.4) lib/journey/router.rb:56:in `call' 
actionpack (3.2.3) lib/action_dispatch/routing/route_set.rb:600:in `call' 
omniauth (1.1.4) lib/omniauth/strategy.rb:184:in `call!' 
omniauth (1.1.4) lib/omniauth/strategy.rb:164:in `call' 
omniauth (1.1.4) lib/omniauth/builder.rb:49:in `call' 
warden (1.2.1) lib/warden/manager.rb:35:in `block in call' 
warden (1.2.1) lib/warden/manager.rb:34:in `catch' 
warden (1.2.1) lib/warden/manager.rb:34:in `call' 
actionpack (3.2.3) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call' 
rack (1.4.5) lib/rack/etag.rb:23:in `call' 
rack (1.4.5) lib/rack/conditionalget.rb:25:in `call' 
actionpack (3.2.3) lib/action_dispatch/middleware/head.rb:14:in `call' 
actionpack (3.2.3) lib/action_dispatch/middleware/params_parser.rb:21:in `call' 
actionpack (3.2.3) lib/action_dispatch/middleware/flash.rb:242:in `call' 
rack (1.4.5) lib/rack/session/abstract/id.rb:210:in `context' 
rack (1.4.5) lib/rack/session/abstract/id.rb:205:in `call' 
actionpack (3.2.3) lib/action_dispatch/middleware/cookies.rb:338:in `call' 
activerecord (3.2.3) lib/active_record/query_cache.rb:64:in `call' 
activerecord (3.2.3) lib/active_record/connection_adapters/abstract/connection_pool.rb:467:in `call' 
actionpack (3.2.3) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call' 
activesupport (3.2.3) lib/active_support/callbacks.rb:405:in `_run__958820258__call__588161715__callbacks' 
activesupport (3.2.3) lib/active_support/callbacks.rb:405:in `__run_callback' 
activesupport (3.2.3) lib/active_support/callbacks.rb:385:in `_run_call_callbacks' 
activesupport (3.2.3) lib/active_support/callbacks.rb:81:in `run_callbacks' 
actionpack (3.2.3) lib/action_dispatch/middleware/callbacks.rb:27:in `call' 
actionpack (3.2.3) lib/action_dispatch/middleware/reloader.rb:65:in `call' 
actionpack (3.2.3) lib/action_dispatch/middleware/remote_ip.rb:31:in `call' 
actionpack (3.2.3) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call' 
actionpack (3.2.3) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call' 
railties (3.2.3) lib/rails/rack/logger.rb:26:in `call_app' 
railties (3.2.3) lib/rails/rack/logger.rb:16:in `call' 
actionpack (3.2.3) lib/action_dispatch/middleware/request_id.rb:22:in `call' 
rack (1.4.5) lib/rack/methodoverride.rb:21:in `call' 
rack (1.4.5) lib/rack/runtime.rb:17:in `call' 
activesupport (3.2.3) lib/active_support/cache/strategy/local_cache.rb:72:in `call' 
rack (1.4.5) lib/rack/lock.rb:15:in `call' 
actionpack (3.2.3) lib/action_dispatch/middleware/static.rb:62:in `call' 
railties (3.2.3) lib/rails/engine.rb:479:in `call' 
railties (3.2.3) lib/rails/application.rb:220:in `call' 
rack (1.4.5) lib/rack/content_length.rb:14:in `call' 
railties (3.2.3) lib/rails/rack/log_tailer.rb:14:in `call' 
rack (1.4.5) lib/rack/handler/webrick.rb:59:in `service' 
C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service' 
C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run' 
C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread' 

这里的信息数据库中的表

create_table "messages", :force => true do |t| 
    t.integer "sender_id" 
    t.integer "recipient_id" 
    t.boolean "sender_deleted", :default => false 
    t.boolean "recipient_deleted", :default => false 
    t.string "subject" 
    t.text  "body" 
    t.timestamp "read_at" 
    t.timestamp "created_at",       :null => false 
    t.timestamp "updated_at",       :null => false 
    end 

我会很感激的帮帮我。

谢谢

+0

尝试'<%= link_to h(message.sender.name),user_path(message.sender,user)%>' – coletrain 2013-05-01 04:39:34

+0

这似乎没有解决错误,但我只是意识到这个错误只发生在记录作为管理员用户....任何想法为什么这可能是? – user2159586 2013-05-01 04:48:05

回答

0

这似乎是没有问题的代码。我认为问题是数据。有一些数据没有sender_id(sender_id是NULL)。

您是否尝试清除消息数据?

相关问题