Я думаю, что я упускаю из виду кое-что очень простое здесь, но был бы действительно признателен за помощь, чтобы понять, что это такое.
В представлении проекта отображается частичное отображение связанных задач (has_many). Я только хочу отобразить те записи, где определенное поле не является пустым. Мой код вида выглядит следующим образом.
<% for task in @tasks %>
<% unless task.user.notes.empty? %>
<tr>
<td><%= task.user.name %></td>
<td><%= task.user.notes %></td>
</tr>
<% end %>
<% end %>
Это возвращается undefined method 'notes' for nil:NilClass
. Это странно, так как: примечания определенно в модели User.
Контроллер проекта, обрабатывающий это, содержит:
def show
@tasks = @project.tasks.paginate(:page => params[:page])
end
Мои модели выглядят следующим образом
Project
has_many :tasks
end
Task
belongs_to :project
belongs_to :user
end
User
has_many :tasks
end
Что я здесь пропустил? Я правильно использую empty?
? Или я должен обрабатывать это в контроллере? В настоящее время у меня есть три части в шоу Project, все с использованием одного и того же запроса Task. Производительность и / или лучшие практики, имеет ли смысл иметь все три частичных источника данных из одного и того же запроса контроллера или иметь отдельный запрос только для этого случая?
Спасибо за любые указатели.