Багги Комментарии Код с приложением Rails - PullRequest
0 голосов
/ 28 сентября 2011

Так что по какой-то причине мой код, кажется, имеет собственный разум и будет работать в некоторых точках, а затем в других случаях при попытке запустить этот код в представлении выдает ошибку, сообщающую метод неопределенного имени

  <%= div_for comment do %>
   <p>
       <big><%= h(comment.body) %> - <%= link_to comment.user.name, comment.user %>   </big><br />
       Posted <%= time_ago_in_words(comment.created_at) %> ago
   </p>
 <% end %>

Код для моего контроллера комментариев выглядит следующим образом

   def create
     @post = Post.find(params[:post_id])
     @comment = @post.comments.build(params[:comment])
     @comment.user_id = current_user.id
     @comment.save
     respond_to do |format|
       format.html { redirect_to @post}
       format.js
       format.json { render :json => @comments }
     end
   end

Как я уже говорил, иногда этот код работает нормально, а иногда нет. Я не уверен, что является причиной проблемы, что еще более странно, что на моем локальном хосте все работает нормально, но когда я помещаю код в свой домен, он не работает. Прежде чем вы скажете, что это может быть несоответствие версий рейлингов домена, вы должны знать, что эта проблема уже возникала на моем локальном хосте и раньше, а затем волшебным образом разрешилась, не меняя никакого кода. Если бы кто-нибудь мог мне помочь, это было бы очень признательно.

Редактировать: вот журнал ошибок, который вы запросили

 Completed 500 Internal Server Error in 286ms

 ActionView::Template::Error (undefined method `name' for nil:NilClass):
     1: <%= div_for comment do %>
     2:     <p>
     3:         <big><%= h(comment.body) %> - <%= link_to comment.user.name,  comment.user.name %></big><br />
     4:         Posted <%= time_ago_in_words(comment.created_at) %> ago
     5:     </p>
     6: <% end %>
   app/views/comments/_comment.html.erb:3:in `block in    _app_views_comments__comment_html_erb___3516162043769402279_2170426440__2165839557434581766'
   app/views/comments/_comment.html.erb:1:in     `_app_views_comments__comment_html_erb___3516162043769402279_2170426440__2165839557434581766 '
   app/views/posts/show.html.erb:14:in      `_app_views_posts_show_html_erb__667623582898069867_2171134300_136023206927572946'
   app/controllers/posts_controller.rb:23:in `show'

1 Ответ

0 голосов
/ 28 сентября 2011

Вы можете проверить значение comment.user при возникновении ошибки.Кажется, что comment.user не является объектом User, как вы ожидаете.Оформите вашу базу данных, возможно, некоторые комментарии не связаны с пользователями или несуществующими пользователями.

Вы можете попробовать выполнить отладку следующим образом, когда у вас снова будет ошибка:

<% comments.each do |comment| %>
  <%= debug comment %> // Or comment.user
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...