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] %> };Теперь прочитаем product_id из flashvars в Flex-приложении.
...
swfobject.embedSWF("swf/calc.swf", "altContent", w, h, ver, "swf/expressInstall.swf", flashvars, params, attr);
...Продолжение следует...
creationComplete="init()">
...
public function init():void {
var id:int = parameters.product_id;
Комментарии
Отправить комментарий