Возможно, вы этого не понимаете, но вы делаете цепочку методов.
@photo.gallery
возвращает объект галереи, связанный с фотографией.@photo.gallery.name
возвращает имя, связанное с объектом "Галерея", связанным с фотографией.
Может быть проще представить это как (@photo.gallery).name
Следующее кодирование эквивалентно вашему коду:
<% @gallery = @photo.gallery %>
<%= @gallery.name %>
В вашем случае, когда у фотографии нет галереи, @ photo.gallery возвращает ноль.Вам просто нужно проверить это:
<%= @photo.gallery.name unless @photo.gallery.nil? %>
Или иметь альтернативный вариант, когда его не существует, что вы хотите.