`

一个ajax和rails交互的例子

阅读更多
首先,这里用了一个,query信息解析的包,如下
https://github.com/rapportive-oss/jquery-parsequery
主要做如下:
$.parseQuery({query: "id[]=1&id[]=2",
    array_keys: /^ids$/,
    decode: function (input, context) {
        input = this.default_decode(input);
        if (context === null) {
            return input.replace(/\[\]$/, 's')
        } else if (context === "ids") {
            input = parseInt(input);
            if (isNaN(input)) {
                throw URIError("id was not a number");
            }
        }
        return input;
    }
}) == {'ids':[1, 2]}


例子,正式触发

// If direct link to property query is used send to Rails
try {
  var hash = location.hash.substr(1, location.hash.length);
  if (location.pathname == '/properties' && hash.length > 0) {
    $.parseQuery.separator = ',';
    var data = $.parseQuery(hash);
    $.ajax({
      url      : '/properties',
      type     : 'GET',
      data     : data,
      dataType : 'script'
    });
  }
} catch(err) { }

服务器端

# app/controllers/application_controller.rb
helper_method :params_to_url

def params_to_url
  rails_params = [
    'action', 
    'controller', 
    'commit', '_', 
    'authenticity_token', 
    '_method', 
    'format', 
    'utf8']
  params_copy = params.dup
  params_copy.map { 
   |k,v| "#{k}=#{URI.escape(v.to_s)}" if !v.empty? && !rails_params.include?(k)  
  }.compact.join(',')
end






# app/views/properties/index.js.erb
<%- if @properties.size > 0 -%>
# For example, update DIV with found properties
window.location.hash = '<%= params_to_url %>';
<%- end -%>
分享到:
评论

相关推荐

    Ajax on Rails

    总的来说,Ajax on Rails 结合了AJAX的强大交互性和Rails的简洁开发体验,为构建现代Web应用提供了一个高效且富有表现力的平台。开发者可以通过学习和掌握这两个技术,构建出响应迅速、用户体验优良的应用程序。

    举例理解Ruby on Rails的页面缓存机制

    Ruby on Rails 是一个流行的 web 开发框架,以其高效和简洁的代码著称。在 Ruby on Rails 中,页面缓存是一种优化性能的技术,尤其适用于那些内容相对静态或者对用户个性化要求不高的网页。页面缓存的工作原理是将...

    Rails中应用Ext.tree:以中国的省市地区三级联动选择为例

    当用户选择一个节点时,TreePanel会触发事件,通过Ajax请求获取下一级别的数据,并更新Tree。 最后,文章可能还会讨论一些优化和扩展点,比如使用缓存来提高性能,或者添加搜索和过滤功能,使得用户能够更方便地...

    应用rails进行敏捷Web开发·第二版源代码

    本书的源代码提供了一个实践性的学习平台,帮助读者深入理解Rails的工作机制,并掌握敏捷开发的技巧。 源代码的提供,使得读者能够跟随书中章节逐步构建实际的应用,从而将理论知识与实践相结合。agile_web_...

    Ajax基础教程(扫描版)

    这一过程将乐趣无穷,我们衷心地希望,有一天能看到你开发的基于ajax的一流应用!... 目录 译者序. 前言 致谢 关于技术审校 第1章 ajax简介 1 1.1 web应用简史 1 1.2 浏览器历史 2 1.3 web应用的发展历程 3 ...

    用Ext Scaffold插件打造Rails的Ext风格

    标题中的“用Ext Scaffold插件打造Rails的Ext风格”指的是在Ruby on Rails(Rails)框架中,使用Ext JS库和一个名为“Ext Scaffold”的插件来创建图形用户界面(GUI)。Ext JS是一个流行的JavaScript库,提供了丰富...

    rails-bootstrap-modals:这个应用程序展示了如何在 rails 4 中使用模态

    Rails 是一个基于 Ruby 语言的开源 Web 应用框架,它遵循 MVC(模型-视图-控制器)架构模式。Bootstrap 是一个流行的前端开发框架,提供了一系列预先设计的 CSS 和 JavaScript 组件,帮助开发者快速构建响应式、移动...

    ajax-example:它的像ajax和东西

    **描述中的“阿贾克斯的例子”表明我们将研究一个具体的应用场景,而“运行:ruby app.rb”则提示我们这个示例可能基于Ruby on Rails框架,这是一个使用Ruby语言开发的Web应用框架,它通常用于构建数据库驱动的Web...

    Michael-Hartls-Rails-Tutorial

    在创建第一个Rails应用时,你会运行`rails new`命令,这将生成一系列基础目录和文件,包括路由文件(config/routes.rb)、控制器(app/controllers)和视图(app/views)。在“你好,世界!”的例子中,你可能创建一...

    learn-rails:学习编程 ruby

    在"learn-rails-master"这个压缩包中,我们可以期待找到一个完整的Rails项目的源代码结构,包括以下关键文件和目录: 1. `Gemfile`:列出项目依赖的Ruby gem包,用于管理和安装这些包。 2. `config/`:配置文件夹,...

    关于ruby的几本电子书

    Ruby on Rails(简称Rails)是一个基于MVC(Model-View-Controller)架构模式的开源Web应用框架,它使Web开发变得更加简单快捷。Rails强调DRY(Don't Repeat Yourself)原则,提倡代码复用和简洁性。书中可能涵盖了...

    railsbridge-javascript-todo-list:Rails Bridge的Javascript TODO列表教程

    这个项目旨在帮助开发者熟悉Rails与前端JavaScript交互的基本流程,同时提供了一个实践JavaScript基础和理解前后端协作的平台。 首先,让我们深入理解Rails。Rails是一款基于Ruby语言的开源Web开发框架,它遵循...

    一个使用HTML、CSS、JavaScript和Socket.IO库实现的聊天室应用程序的示例代码

    - Socket.IO 是一个库,允许在Web浏览器和服务器之间进行实时双向通信。它在需要WebSocket协议但不支持的浏览器上自动降级到其他传输方式,如AJAX长轮询。在示例中,它负责建立连接,发送和接收聊天消息,以及系统...

    Mootools 多样式图片滚动实现【荐】.zip

    Mootools是一个强大的JavaScript库,它为Web开发者提供了丰富的功能,包括DOM操作、事件处理、动画效果、Ajax交互等。这个“Mootools 多样式图片滚动实现【荐】.zip”文件似乎包含了一个利用Mootools框架实现的图片...

    Ruby-Shrimp一个基于phantomjs的pdf渲染器

    PhantomJS是一个JavaScript驱动的浏览器,它允许开发者在没有实际图形界面的情况下运行页面,这对于自动化任务和渲染静态内容非常有用。Ruby-Shrimp利用了PhantomJS的这种特性,为Ruby开发者提供了一种方便的方式来...

    关于Ruby on Rails视图编写的一些建议

    例如,在上面的部分中提供的`Email`类就是这样一个例子,它通过正则表达式检查邮箱地址的有效性。 2. **配置JavaScript文件**:接着,需要在项目的`javascripts`目录下新建一个`rails.validations.custom.js.coffee...

    prototype类

    Prototype 类库是一个强大的JavaScript工具库,它为JavaScript语言增加了许多实用功能,特别是在对象操作、类式继承和函数增强等方面。这个库由 Sam Stephenson 创建,最初是为了支持Ruby on Rails框架,但后来发展...

    onefilerailsapp:迷你导轨可嵌入的即时民意调查应用程序

    总之,“onefilerailsapp”是一个展示Rails框架核心功能的微型示例,对于初学者来说,这是一个很好的实践项目,可以帮助他们快速掌握Rails的基本概念和工作流程。同时,对于经验丰富的开发者,它提供了一个有趣的...

Global site tag (gtag.js) - Google Analytics