Для 1 и 2 вы можете просто установить переменную экземпляра (@person
) в контроллере.
Для 3 ваш код представления не так уж и плох, но зачем нужна отдельная модель страницы? Вы также можете загрузить друзей заранее в контроллер:
# in apps/controller/person_controller.rb
def show
@person = Person.find(params[:id], :include => :friends)
@friends = @person.friends
end
Пример 4 немного хуже, так как вы выполняете вызовы внешних веб-сервисов в представлении. Не делай этого.
Эта статья имеет хороший пример того, как будет выглядеть идеальный чистый вид: http://warpspire.com/posts/mustache-style-erb/