Tip: Extjs + Rails
Для тех кто только использует связку 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!'); } }); |
Комментарии
4 Комментариев к “Tip: Extjs + Rails”
Денис, а ты еще и на RoR пишешь? С каких пор? Уважаю, потому чтио сам никак не могу добраться до них )))
2 Snowcore: На работе напрягут - доберешься
Теперь понятно почему появилась статья о зарплате ))) К сожалению многие на фирмах “и кузнец и жнец…” к тому же это не всегда оплачивается нормально (я о себе)
можно и осознано к этому придти
есть много любителей посравнивать именно этих двоих зверей по скорости.
Причем заранее ясно кто быстрее.
А вот изобразить на пыхе нечто близкое по функционалу к RoR (именно с рельсами) - сразу поймете как на самом деле надо было сравнивать.
Попробуйте симфони на чем-то крупном - и выкиньте его.
PHP вообще моя любимая тема. Он просто бэст, и бэстно прост, как Калашников. Только есть ситации, когда бывает нужна ракета со спуниковым наведением, и вот тут средства надо правильно выбирать.
Ибо нет тормозных языков - бывает только просер в архитектуре