RubyOnRails и Flex


С самого начала, приступая к работе над сайтом типографии, я решил, что онлайн-калькулятор стоимости печати буду писать на Flex, но потом передумал и сделал на Ruby. Во-первых, потому что программировать на Ruby - это одно бесконечное удовольствие), а во-вторых, я, признаться, боялся, что будет не так просто подружить Rails и Flex, и что в итоге все обернется паникой и продолжительной депрессией. К удивлению, все оказалось более чем легко и просто (в чем я убедился, когда таки набрался решимости и переписал все с Ruby во Flex). Ниже опишу несколько задач по Rails + Flex и их решения.

Задача: на стартовой странице сайта отображается список видов изделий (буклеты, листовки и т.п.), стоимость которых пользователь может посчитать в онлайн-калькуляторе. При клике на название изделия нужно а) загрузить страницу с калькулятором, б) передать  в калькулятор ID изделия, чтобы активировать режим расчета именно того изделия, которое выбрал пользователь на стартовой странице.

Решение: для передачи ID выбранного изделия воспользуемся объектом params, для этого оформим url хелпера link_to следующим образом:
<%= link_to @product.name, calc_path + "?product_id=" + @product.id, :alt => "" %>
После клика на линк, откроется страница расчета стоимости печати изделия, и начнется загрузка swf-файла калькулятора. И вот тут - на этапе загрузки swf - мы передадим в swfobject ID изделия через  flashvars:
var flashvars = { product_id: <%= params[:product_id] %> };
...
swfobject.embedSWF("swf/calc.swf", "altContent", w, h, ver, "swf/expressInstall.swf", flashvars, params, attr);
Теперь прочитаем product_id из flashvars в Flex-приложении.
...
creationComplete="init()">
...
public function init():void {
    var id:int = parameters.product_id;
Продолжение следует...

Комментарии

Популярные сообщения из этого блога

Конвертируем Ruby-приложение в exe

JQuery и Rails - делаем кнопку "like it" со счетчиком

Резервное копирование базы данных по расписанию