Этот код работает правильно (с использованием HAML):рельсы "неопределенный метод" ошибка внутри контура, который не оценивается
#comments
- @blog.comments.each do |comment|
.comment
.username
- if !eval("comment.user").nil?
#{comment.user.email}
.content
#{comment.content}
Однако, если удалить строку "Eval" т.е.
#comments
- @blog.comments.each do |comment|
.comment
.username
#{comment.user.email}
.content
#{comment.content}
I получаю сообщение об ошибке:
undefined method `email' for nil:NilClass
Даже когда нет комментариев в базе данных (следовательно, содержимое цикла не должно оцениваться). Что происходит?
'- if! Eval (" comment.user "). Nil?' Это уродливо, просто используйте '- if comment.user' –
@MikhailNikalyukin thx, я искал какой-то более чистый синтаксис. Я думал, что пробовал это раньше, но сейчас это работает :) –