Я полагаю, вы
render "new"
в случае ошибки.При рендеринге нового представления соответствующее действие контроллера не вызывается!Таким образом, у вашего
@listing = Listing.new(params[:listing])
не будет фотографии, связанной с ним.Сделайте
@listing.build_photo # or @listing.photos.build (for has_many association)
перед рендерингом нового.