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

不要直接从视图调用模型层。
    不要在视图构造复杂的格式,把它们输出到视图 helper 的一个方法或是模型。
    使用 partial 模版与布局来减少重复的代码。

加入 client side validation 至惯用的 validators。 要做的步骤有:

声明一个由 ClientSideValidations::Middleware::Base 而来的自定 validator

 module ClientSideValidations::Middleware
   class Email < Base
   def response
    if request.params[:email] =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
    self.status = 200
    else
    self.status = 404
    end
    super
   end
   end
  end

建立一个新文件public/javascripts/rails.validations.custom.js.coffee 并在你的 application.js.coffee 文件加入一个它的参照:


  # app/assets/javascripts/application.js.coffee
  #= require rails.validations.custom

添加你的用户端 validator:

  #public/javascripts/rails.validations.custom.js.coffee
  clientSideValidations.validators.remote['email'] = (element, options) ->
   if $.ajax({
   url: '/validators/email.json',
   data: { email: element.val() },
   async: false
   }).status == 404
   return options.message || 'invalid e-mail format'
(0)

相关推荐

  • Ruby on Rails中的ActiveResource使用详解

    当 HTTP 响应是一个与存在的格式不同的格式时(XML 和 JSON),需要某些额外的格式解析,创一个你惯用的格式,并在类别中使用它.惯用的格式应当实作下列方法:extension, mime_type,     encode 以及 decode. module ActiveResource module Formats module Extend module CSVFormat extend self def extension 'csv' end def mime_type 'text/

  • 关于Ruby on Rails路由配置的一些建议

    当你需要加入一个或多个动作至一个 RESTful 资源时(你真的需要吗?),使用 member and collection 路由. # 差 get 'subscriptions/:id/unsubscribe' resources :subscriptions # 好 resources :subscriptions do get 'unsubscribe', on: :member end # 差 get 'photos/search' resources :photos # 好 resou

  • 详解Ruby on Rails中的Cucumber使用

    用 @wip (工作进行中)标签标记你未完成的场景.这些场景不纳入考虑,且不标记为测试失败.当完成一个未完成场景且功能测试通过时,为了把此场景加至测试套件里,应该移除 @wip 标签.     配置你的缺省配置文件,排除掉标记为 @javascript 的场景.它们使用浏览器来测试,推荐停用它们来增加一般场景的执行速度. 替标记著 @javascript 的场景配置另一个配置文件. 配置文件可在 cucumber.yml 文件里配置. # 配置文件的定义: profile_name: --tag

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

    不要直接从视图调用模型层.     不要在视图构造复杂的格式,把它们输出到视图 helper 的一个方法或是模型.     使用 partial 模版与布局来减少重复的代码. 加入 client side validation 至惯用的 validators. 要做的步骤有: 声明一个由 ClientSideValidations::Middleware::Base 而来的自定 validator module ClientSideValidations::Middleware class Em

  • 在Ruby on Rails中使用Rails Active Resource的教程

    简介 当今的应用程序不仅需要和基于浏览器的客户端互操作,还需要和其他应用程序互操作.为实现互操作性,web 应用程序通常提供一个 web 服务 API.web 服务 API 通过一个网络(比如 Internet)提供对应用程序 的远程访问.直到最近,web 服务 API 还使用重型.复杂的基于 SOAP 的 web 服务集成,这种 web 服务,不仅没有什么优点,而且还需要很长时间才能实现.带有基于 Representational State Transfer (REST) 服务的 Rails

  • Ruby on Rails中MVC结构的数据传递解析

    如果读者已经开发过基于 Rails 的应用,但对其 MVC 间的数据传递还有诸多困惑,那么恭喜您,本文正是要总结梳理 Rails 数据传递的方法和技巧.Ruby on Rails 3(以下统称为 Rails 3)是当前的主要发布版本,本文所述及的内容和代码都基于此版本. Rails 3 简介 Ruby on Rails 是一个 Ruby 实现.采用 MVC 模式的开源 Web 应用开发框架,能够提供 Web 应用的全套解决方案.它的"习惯约定优于配置"的设计哲理,使得 Web 开发人员

  • 在Ruby on Rails中优化ActiveRecord的方法

    Ruby on Rails 编程常常会将您宠坏.这一不断发展的框架会让您从其他框架的沉闷乏味中解脱出来.您可以用习以为常的几行代码片断表达自己的意图.而且还可以使用 ActiveRecord. 对于我这样的一个老 Java? 程序员而言,ActiveRecord 多少有点生疏.通过 Java 框架,我通常都会在独立的模型和模式之间构建一种映射.像这样的框架就是映射框架.通过 ActiveRecord,我只定义数据库模式:或者用 SQL 或者用称为迁移(migration)的 Ruby 类.将对象

  • 在Ruby on Rails中使用AJAX的教程

    如果没有听说过 Rails,那么欢迎您外星旅行归来,近几年大概只有那个地方没有听说过 Ruby on Rails 了.Rails 最吸引人的地方是能够很快地建立功能完备的应用程序并运行起来.Rails 为 Ajax 而内置集成的 Prototype.js 库可以轻松快速地创建所谓的富 Internet 应用程序. 本文将逐步引导您创建 Rails 应用程序.然后深入分析如何利用 Ajax 特性编写从服务器上读写数据的 JavaScript 代码. 从容起步 Ajax 之旅--Ajax 技术资源中

  • 使用Ruby on Rails快速开发web应用的教程实例

    Ruby on Rails 正在令整个 Web 开发领域受到震憾.让我们首先了解底层的技术: Ruby 是一门免费的.简单的.直观的.可扩展的.可移植的.解释的脚本语言,用于快速而简单的面向对象编程.类似于 Perl,它支持 处理文本文件和执行系统管理任务的很多特性.     Rails 是用 Ruby 编写的一款完整的.开放源代码的 Web 框架,目的是使用更简单而且更少的代码编写实际使用的应用程序. 作为一个完整的框架,这意味着 Rails 中的所有的层都是为协同工作而构造的,所以您不必自己

  • 几个加速Ruby on Rails的编程技巧

    Ruby 语言常以其灵活性为人所称道.正如 Dick Sites 所言,您可以 "为了编程而编程".Ruby on Rails 扩展了核心 Ruby 语言,但正是 Ruby 本身使得这种扩展成为了可能.Ruby on Rails 使用了该语言的灵活性,这样一来,无需太多样板或额外的代码就可以轻松编写高度结构化的程序:无需额外工作,就可以获得大量标准的行为.虽然这种轻松自由的行为并不总是完美的,但毕竟您可以无需太多工作就可以获得很多好的架构. 例如,Ruby on Rails 基于模型-

  • windows下安装ruby与rails时遇到的问题总结

    前言 最近因为工作的需要,准备安装ruby on rails,在网上搜了下,步骤都类似,但实际安装过程中却碰到很多问题. 说明下:文章是按照我尝试的过程描述的.但最终是靠 运行 railsinstaller一键式安装包才成功的(第五段),因此前面的部分大家可以看看,但不用去尝试. 下面来看看详细的介绍吧: 一.首先要安装ruby 因为在windows下安装ruby,都是推荐下载rubyinstaller安装程序. 先进入ruby官网http://www.ruby-lang.org/en/down

  • 简单对比分析Ruby on Rails 和 Laravel

    在线web应用程序开发目前有许多正流行的框架.  也有许多不同类型的框架,比如那些拥有大量插件,可以让你更加快速的迭代 (比如 Rails),或者还有其它非常简单和低级别的 (比如 Flask). web应用程序开发中两个相对而言更加流行的框架是 Ruby on Rails 和 Laravel.  它们两个都是非常成熟的项目,已经面世相当长一段时间了 .  Ruby on Rails 在2005年12月被引入,而 Laravel 则是2012年2月 . 如上所示的第一次发布的时间, Larave

随机推荐