`
qiezi
  • 浏览: 498818 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[RoR] 用javascript脚本模拟一个action

    博客分类:
  • Ruby
阅读更多
rails 1.1以上版本提供了强大优雅的RJS,可能执行一个请求多个更新。

有些时候我们并不需要请求服务器,只想在浏览器上执行某些脚本更新,但又想使用RJS。所以为RoR增加了这项功能。

使用方法:

<script language="javascript">
<%= 
render :update do 
|page|
  page.define_action 
'test_action' do
    page.call_script 
<<-EOS
      alert(params.comment.title);
      alert(params.comment.body);
    EOS
    page.replace_html 
'errors''ERROR'
  end

  page.define_action 
'link_action' do
    page.replace_html 
'errors''ERROR'
  end
end
%>
</script>

<div id="errors"></div>

<%= form_local_tag :html => {:action => 'test_action'%>
  
<input name="comment[title]" /><br />
  
<input name="comment[body]" /><br />
  
<%= submit_tag 'Create' %>
<%= end_form_tag %>

<%= link_to_local 'Test', :action => 'link_action()' %>

上面演示了form_local_tag和link_to_local的使用,打开这个页面以后,可以关掉服务器测试,会发现它不请求服务器也能执行相应脚本。

define_action定义一个脚本函数,call_script用来实现javascript和RJS代码的混合。当使用form_local_tag时,action方法的参数已经被处理过,所以可以直接在action中使用params.comment.title。

当然现在还不完善,比如还只能使用转换完的页面模板,一些动态页面将看不出效果。要做到这点,需要用javascript实现一整套的ActionView辅助方法。

下面提供一个针对rails 1.1.2的一个补丁文件:

补丁文件下载
分享到:
评论

相关推荐

    RoR-Sample:Ruby On Rail 示例

    Ruby on Rails,简称RoR,是一个基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,用于快速开发高效、可维护的Web应用。RoR的核心理念是DRY(Don't Repeat Yourself)和Convention ...

    Insta-clone:具有RoR和React.js的InstaClone

    "Insta-clone: 具有RoR和React.js的InstaClone" 这个标题表明我们正在讨论一个项目,它是一个克隆版的Instagram,使用了两种主要的技术栈:Ruby on Rails(RoR)和React.js。RoR是基于Ruby语言的全功能Web开发框架,...

    ruby on rails 101

    《Ruby on Rails 101》是一本介绍Ruby on Rails(简称RoR或ROR)的基础书籍,旨在为初学者提供一个全面而深入的学习框架。本书由Peter Marklund编写,包含了五天课程的演示文稿和相关资料,覆盖了从安装到实际应用...

    WadRor:服务器编程

    Ruby on Rails,简称RoR,是一个基于Ruby语言的开源Web应用框架,它遵循模型-视图-控制器(MVC)架构模式,极大地简化了服务器端编程。 【描述】:“服务器编程:Ruby on Rails 2015”提示我们关注的是2015年版本的...

    rubyslist:我克隆的流行网站 Craigslist

    Ruby列表是一个用Ruby on Rails(RoR)框架构建的项目,它的目标是模仿并实现流行的分类广告网站Craigslist的功能。RoR是一个基于Ruby语言的全功能Web开发框架,以其MVC(模型-视图-控制器)架构模式而闻名,为...

    pigrider.com_tools:Pigrider工具网站

    Ruby on Rails(RoR)是一个强大的、开源的Web应用框架,遵循MVC(模型-视图-控制器)架构模式,强调生产力和简洁性,使得开发过程更为高效。 **Ruby on Rails框架** Ruby on Rails是由David Heinemeier Hansson在...

    RobHub:这是将Ruby on Rails与Emberjs结合在一起的一项正在进行的工作。 最终并希望这将是一个展示我撰写的文章,我的项目和我的简历的网站

    标题中的“RobHub”是一个项目,它旨在将两种强大的Web开发技术——Ruby on Rails和Ember.js——融合在一起,创建一个个人展示网站。这个网站预期的功能包括发布文章、展示项目和展示作者的简历,以此来全面展示作者...

    New-blog:新闻类博客

    前端部分则是使用了Angular 1.4.4,这是一个强大的JavaScript MVC框架,由Google维护。Angular 1.x版本强调了数据绑定和依赖注入,使得开发者可以更轻松地创建动态、响应式的用户界面。1.4.4版本是Angular 1.x系列的...

    Alumni on Rails-开源

    Ruby on Rails(简称RoR)是Ruby语言的一个开源web开发框架,它遵循MVC(模型-视图-控制器)架构模式,强调DRY(Don't Repeat Yourself)原则,提倡简洁的代码和高效的开发流程。在"Alumni on Rails"项目中,开发者...

    webecome.family:婚礼网站

    这个项目的核心技术栈是Ruby,一个面向对象的脚本语言,以其简洁、优雅的语法和强大的Rails框架而闻名。 在Ruby on Rails(RoR)框架下,webecome.family得以快速开发,RoR遵循MVC(Model-View-Controller)架构...

    CSCE-431:德州农工大学CSCE 431的设备跟踪器Web应用程序

    在Web开发领域,Ruby最著名的框架是Ruby on Rails(RoR),这是一个用于构建数据库驱动的Web应用的全栈框架。Ruby on Rails采用MVC(模型-视图-控制器)架构模式,使得开发快速而高效。 在设备跟踪器Web应用程序中...

    sitehunt:Producthunt 克隆

    sitehunt 通过使用 Ruby on Rails(简称 RoR)框架构建,为开发者和创新者提供了一个类似的环境,使他们能够在本地环境中探索和体验 ProductHunt 的核心特性。 Ruby on Rails 是一种使用 Ruby 语言编写的开源 web ...

    Portfolio-rubyonrails:您好,我将在基于RubyonRails的投资组合页面上工作

    Ruby on Rails(RoR)是一个基于Ruby语言的开源Web应用框架,它遵循模型-视图-控制器(MVC)架构模式,用于简化Web开发流程。在这个项目中,开发者Oray Kurt创建了一个展示其作品、技能和个人经验的在线平台。 描述...

Global site tag (gtag.js) - Google Analytics