• Rails ? Копаюсь в кишках. Реквестирую JID кого-нибудь кто разбирается в руби, чтобы задать пару вопросов =) Вопросы про метод respond_to
    ♡ recommended by @Sectoid, @wyldrodney
  • тьфу, фигню написал
    respond_to — метод, который позволяет узнать, есть ли такая функция у объекта.. т.е. отвечает ли объект на такое сообщение..
    а какие про него могут быть вопросы?
  • не в курсе, что именно ты хочешь узнать, но сразу:
    tokumine.com
  • @neFormal, ты говоришь про respond_to? а я про respond_to, метод в ApplicationController'е который используют чтобы определить на какие mime-типы данная функция данного контреллера
  • @teferi, хе, я угадал :)
  • @vessi, и сразу цитата из комментов:
    Where the hell do the html and xml methods come from on the Responder class? ActionController::MimeResponds::Responder only has 4 methods: any, custom, method_missing and respond.
    и ответ:
    They are actually caught by method missing
  • @vessi, да у меня эта страничка открыта, но я ее не успел прочитать. =) У меня просто складывается ощущение, что при генерации ответа например в html все остальные объявленные миме-типы тоже генерируются(render'ятся)
  • @teferi, сейчас почитаю исходники ActionController::MimeResponds::Responder
  • @vessi, если MIME не задан, генерится HTML, иначе заданный тип.
  • @vessi, подробности по ссылке rubydoc.info
  • @vessi, Да бог с ним. Меня интересует — что случается когда я пишу там 2-3 миме типа. Как я понял там собака порылась в @mime_type_priority в который попадают типы из controller.request. Соответственно в методе respond вызовется первый попавышийся из нужных =) Все, я осознал, хотя магии на мой вкус многовато =) И да рельсы 3.1
  • @teferi, это Ruby, тут всегда много магии.
  • @vessi, Честно говоря больше расстроило то что в документации написано что этот метод делает и не написано как =( Ну или у меня такое ощущение создалось. В целом — всем спасибо )
  • @teferi, Я идиот =( Я смотрел не в тот исходник и не понимал как оно может работать. А оно и не может работать. в 3.1.1 этот файлик совсем не так выглядит =(
  • @teferi, Я думал думал, я все понял =) Проблема была в том что как обычно в Руби внутри одного блока создается куча других блоков. Итого в контроллере мы пишем respond_to {|f| f.html {render smth}; f.xml} и этот блок вызывается, как f туда передается Collector, у которого вызывается html, которого нет и который в missing создается, и на самом деле всего-лишь вызывает custom c блоком, который у себя в @responces сохраняет блок который надо вызвать. И наконец когда рельсы пытаются все это выполнить, то если находится responce, соответствующий request'у его и вызывают.