`
hideto
  • 浏览: 2689560 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex集成Rails

    博客分类:
  • Ruby
阅读更多
Adobe发布了Rails与Flex集成方案:
rubyonrails-ria-sdk-by-adobe

其中对Flex和Rails集成给出了几个例子,这里来与大家分享下最简单的xml交互方式
这种方式对后台服务端语言实际上没有限制,是最independent的

首先建立一个TopicsController:
class TopicsController < ApplicationController

  def list
    @topics = Topic.find(:all)
    render : xml => @topics.to_xml
  end

  def create
    @topic = Topic.new(params[:topic])
    @topic.save
    render : xml => @topic.to_xml
  end

  def update
    @topic = Topic.find(params[:id])
    @topic.update_attributes(params[:topic])
    render : xml => @topic.to_xml
  end

  def delete
    @topic = Topic.find(params[:id])
    @topic.destroy
    render : xml => @topic.to_xml
  end

end

这里我们的每个action都返回对象或对象数组的xml格式
比较郁闷的是每个方法最后都必须render一个:xml,否则ActionScript会报Error #2032 Stream Error,但是不影响操作结果

然后创建一个test.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="listTopics.send()">
 <mx:Script>
  <![CDATA[
   private function clearForm():void
   {
    title.text = ""
    content.text = "";
   }
   private function sendTopicUpdate():void
         {       
          var topic:Object = new Object();
             topic['id'] = topic_list.selectedItem.id;
             topic['topic[' + 'title' +']'] = title.text;
             topic['topic[' + 'content' +']'] = content.text;
             
             updateTopic.send(topic);
          }
  ]]>
 </mx:Script>
 <mx:HTTPService id="listTopics" url="http://localhost:3000/topics/list" method="POST"/>
 <mx:HTTPService id="updateTopic" url="http://localhost:3000/topics/update" method="POST" result="listTopics.send()"/>
 <mx:HTTPService id="deleteTopic" url="http://localhost:3000/topics/delete" method="POST" result="listTopics.send()"/>
 <mx:HTTPService id="createTopic" url="http://localhost:3000/topics/create" method="POST" result="listTopics.send()" contentType="application/xml">
        <mx:request xmlns="">
            <topic>
                <title>{title.text}</title>
                <content>{content.text}</content>
            </topic>
        </mx:request>
 </mx:HTTPService>
 
 <mx:VDividedBox x="0" y="0" height="100%" width="100%">
  <mx:Panel width="100%" height="222" layout="absolute" title="Create/Update Topics">
   <mx:Form x="10" y="10" width="930" height="100">
    <mx:FormItem label="Title">
     <mx:TextInput width="220" id="title" text="{topic_list.selectedItem.title}"/>
    </mx:FormItem>
    <mx:FormItem label="Content">
     <mx:TextInput width="220" id="content" text="{topic_list.selectedItem.content}"/>
    </mx:FormItem>
   </mx:Form>
   <mx:ControlBar horizontalAlign="right">
    <mx:Button label="Clear" click="clearForm()"/>
    <mx:Button label="Update" click="sendTopicUpdate(); clearForm()"/>
    <mx:Button label="Create" click="createTopic.send(); clearForm()"/>
   </mx:ControlBar>
  </mx:Panel>
  <mx:Panel width="100%" height="100" layout="absolute" title="Topics">
   <mx:DataGrid x="0" y="0" width="100%" height="100%" id="topic_list" dataProvider="{listTopics.lastResult.topics.topic}">
    <mx:columns>
     <mx:DataGridColumn headerText="ID" dataField="id"/>
     <mx:DataGridColumn headerText="Title" dataField="title"/>
     <mx:DataGridColumn headerText="Content" dataField="content"/>
    </mx:columns>
   </mx:DataGrid>
   <mx:ControlBar horizontalAlign="right">
    <mx:Button label="Delete" click="deleteTopic.send({id:topic_list.selectedItem.id})"/>
   </mx:ControlBar>
  </mx:Panel>
 </mx:VDividedBox>
 
</mx:Application>

<mx:HTTPService/>标签指定我们要访问的url即可,其中可以设置result钩子方法
result钩子方法让CUD操作后更新Topics列表
Clear、Update、Create和Delete这四个Button的click事件分别指定做清除表单、UCD操作
而creationComplete="listTopics.send()"以及上面的result钩子方法则做R操作
分享到:
评论
1 楼 cjyzpcl 2007-08-07  
这个我也做过一个DEMO,实际上后台通过Rails的Web Service实现比较好。Flex本身设置好权限后就可以生成Flash了,实在是很方便的工具,如果免费就完美了。同理,laszlo也可以和Rails整合。

相关推荐

    flex 與 rails 開發的問題單管理sample

    在IT行业中,Flex和Rails是两种非常重要的技术,它们分别用于构建富互联网应用程序(RIA)和Web应用程序。...通过研究这个项目,开发者可以深入理解Flex和Rails的集成,提升跨平台Web应用的开发技能。

    Flex3与Rails结合

    作为一款集成WEBrick服务器的Ruby on Rails编辑器,RadRails简化了开发流程。需在系统中安装J2SE以支持其运行。 #### 构建HelloWorld应用 环境准备好后,接下来是实现第一个案例:“HelloWorld”。 **1. 建立...

    flex rails

    #### 知识点一:Flex与Ruby on Rails的集成原理及优势 《FlexibleRails》这本书主要讲述了如何将Flex与Ruby on Rails进行整合,实现强大的Web应用程序。Flex是一种用于构建丰富的互联网应用程序(RIA)的技术,而...

    Rails相关电子书汇总

    这本书可能探讨如何在Rails应用中集成Flex,以创建更互动且视觉效果丰富的前端界面。在Rails 2的时代,这样的集成是提升用户体验和应用功能的一个流行方法。 通过阅读这本书,开发者可以学习到以下知识点: 1. ...

    Flex.3实战(中文版)

    《Flex3实战》首先简要概述Flex 3和ActionScript,然后以十分友好、务实的方式介绍Flex的每个主要...Flex 3提供企业质量的数据以及与Java、PHP和Rails集成的服务器组件。目前,Flex的主要组件是供免费使用的开源软件!

    rails magazine issue 3

    **知识点:** Arturo Fernandez 探讨了 Ruby on Rails 如何与 Adobe Flex 集成,以构建富互联网应用(RIA)。Flex 是一种用于构建桌面和移动设备上的高度交互式的跨浏览器、跨平台应用程序的框架。结合 Rails 的后端...

    modular

    这在版本控制和持续集成流程中特别有用。 Flex模块开发还有其他高级特性,如模块缓存、模块重用、模块生命周期管理等。理解并熟练运用这些特性,能帮助开发者构建更强大、更灵活的应用程序。 总之,Flex中的模块化...

    rormatrixru.github.io:Ruby on Rails 开发人员能力矩阵

    通过设置 `display: flex` 属性,开发者可以轻松创建多列布局、对齐内容、自适应间隔等,这对于构建响应式 Rails 应用尤其重要。 提到“点击按钮而不是文本的计数器”,这可能是指在用户界面设计中的一种交互方式。...

    SPRING攻略 第2版.pdf

    构建于Spring IoC容器组件模型之上的这些Spring3部件提供了集成、批处理、OSGi、Ajax和Flex集成、状态式的Web应用、REST风格Web服务、富客户端用户界面、Google AppEngine开发、基于云的部署、消息、数据访问、Web...

    SPRING攻略 第2版

    构建于Spring IoC容器组件模型之上的这些Spring3部件提供了集成、批处理、OSGi、Ajax和Flex集成、状态式的Web应用、REST风格Web服务、富客户端用户界面、Google AppEngine开发、基于云的部署、消息、数据访问、Web...

    SPRING攻略 第2版 (带书签)(一)

    构建于Spring IoC容器组件模型之上的这些Spring3部件提供了集成、批处理、OSGi、Ajax和Flex集成、状态式的Web应用、REST风格Web服务、富客户端用户界面、Google AppEngine开发、基于云的部署、消息、数据访问、Web...

    SPRING攻略 第2版 (带书签)(二)

    构建于Spring IoC容器组件模型之上的这些Spring3部件提供了集成、批处理、OSGi、Ajax和Flex集成、状态式的Web应用、REST风格Web服务、富客户端用户界面、Google AppEngine开发、基于云的部署、消息、数据访问、Web...

    sharetribe:Sharetribe Go是可购得的市场软件,也可以作为托管的无代码SaaS产品获得。 有关无头,API优先的市场解决方案,请查看Sharetribe Flex

    它使您可以使用自己选择的编程语言来开发市场,构建移动应用程序,设计定制的交易流程并轻松集成第三方服务。 内容 技术栈 Ruby 2.6 Ruby on Rails 5.2.3 MySQL 5.7 React + jQuery Node.js 10.15(用于编译...

    JavaOne2009大会资料-Services SOA Platform and Middleware Services2

    "JRuby on Rails in Production: Lessons Learned from Operating a Live"聚焦于JRuby on Rails在生产环境中的实际应用。JRuby是Java平台上对Ruby语言的实现,它允许开发人员利用Ruby的简洁性和Rails框架的生产力,...

    各种编程语言的区别与联系.doc

    - Ruby是一种动态、面向对象的语言,Ruby on Rails是其流行的Web开发框架,以其简洁的语法和开发效率受到青睐。 8. **Flex** - Flex是用于构建富互联网应用程序(RIA)的工具,基于ActionScript和Flash Player,...

    elasticsearch-stuff:一些围绕弹性搜索的库

    当我们只有一个倒排索引时,我们希望一切看起来都像一个字符串前缀问题 介绍 Ruby/Rails 集成担架- - 的Flex - - 提示/技巧使用 CURL 和 BASH 的 ELASTICSEARCH 开发工作流程,2013.07 表现Zachary Tong的博客,很...

    Java在WEB开发领域的革新

    Rails框架的流行部分归功于它对Ajax的友好支持,通过RJS模板简化了Ajax开发,以及对RESTful架构的深度集成。REST作为一种设计原则,确实成为了Web开发的趋势,但Java凭借其灵活性和不断进化的框架,如Spring Boot和...

    刘树全的J2EE培训教程

    5. **RichClient**:探讨了SwingWeb、Echo、Flex、Laszlo System和SmartClient,这些都是创建富客户端应用的技术。 6. **JSF(JavaServer Faces)**:从初级到高级,包括SUN、IBM和Oracle的实现。 7. **脚本语言...

    几种软件开发工具的区别.pdf

    VC,即Microsoft Visual C++,是一个集成开发环境(IDE),用于编写C++代码。VC++是VC的一个版本,包含对C++语言的支持。需要注意的是,C++是语言,而VC++是使用该语言的开发工具。 VB,全称Visual Basic,是微软...

Global site tag (gtag.js) - Google Analytics