Denis.in.ua

Блог имени Меня

Archive for Июнь, 2008

Tip: Extjs + Rails

4 comments

Для тех кто только использует связку Extjs и Rails.
В рельсах есть такой полезный метод: respond_to, который позволяет отдавать данный в нужном формате будь-то html, xml, json.
Например:

1
2
3
4
5
6
7
respond_to do |format|
      format.json {
        data = {:success=>true}
        render :json=>data.to_json
      }
      format.html { redirect_to(:controller => 'blablabla', :action => 'index', :id => 'all') }
 end

В данном случае, если запрос пришел Аяксом — то просто вернуть ответ в формате json: {:success=>true}.
Если же был обычный переход в браузере на данную страницу — то отредиректить на другую страницу.

При это рельсы пытаются определить, в каком формате тебе нужен ответ анализируя заголовки.

И все казалось бы без проблем, но если вы пытаетесь создать аяксовый запрос используя extjs — рельсы выполнят код блока html.
Безобразие!

Чтобы вразумить их, придется использовать дополнительный параметр в аяксовом запросе:

headers: { ‘Accept’ : ‘application/json’ },

Например так:

1
2
3
4
5
6
7
8
Ext.Ajax.request({
            url : my_url
            method: 'POST',
            headers: { 'Accept' : 'application/json' },
            callback: function ( options, success, response ) {
                alert('ok!');
            }
        });

Written by Денис Солошенко

Июнь 27th, 2008 at 1:24 дп

Posted in Javascript,Rails

Современная жизнь

7 comments

Переписываться с человеком по аське, когда слышно как он набирает тебе сообщения…

Written by Денис Солошенко

Июнь 19th, 2008 at 7:14 пп

Posted in Ни о чем

Рекомендую к прочтению

5 comments

Бывает сидишь себе на работе, а почитать нечего.
Рекомендую две книжки и два блога:
Read the rest of this entry »

Written by Денис Солошенко

Июнь 19th, 2008 at 3:44 пп

Posted in Соль

Мысли вслух

4 comments

Чтобы заставить программиста сделать что-то хорошо, надо заставить его пользоваться этим «что-то»(C)

Written by Денис Солошенко

Июнь 17th, 2008 at 6:54 пп

Posted in Ни о чем