關(guān)于Ruby on Rails視圖編寫的一些建議
不要直接從視圖調(diào)用模型層。
不要在視圖構(gòu)造復(fù)雜的格式,把它們輸出到視圖 helper 的一個(gè)方法或是模型。
使用 partial 模版與布局來減少重復(fù)的代碼。
加入 client side validation 至慣用的 validators。 要做的步驟有:
聲明一個(gè)由 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
建立一個(gè)新文件public/javascripts/rails.validations.custom.js.coffee 并在你的 application.js.coffee 文件加入一個(gè)它的參照:
# 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'
相關(guān)文章
使用RVM實(shí)現(xiàn)控制切換Ruby/Rails版本
RVM 是Ruby Version Manager的縮寫,是一個(gè)命令行工具,它可以讓你輕松地安裝,管理和使用多個(gè)版本的Ruby.不同的rails項(xiàng)目使用等ruby和rails版本不一樣的時(shí)候,可以使用RVM自由切換。2017-06-06
ruby實(shí)現(xiàn)的一個(gè)異步文件下載HttpServer實(shí)例
這篇文章主要介紹了ruby實(shí)現(xiàn)的一個(gè)異步文件下載HttpServer,使用eventmachine和em-http-server實(shí)現(xiàn),需要的朋友可以參考下2014-07-07
Ruby中使用each和collect進(jìn)行迭代的用法
這篇文章主要介紹了Ruby中使用each和collect進(jìn)行迭代的用法,是Ruby學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05
比較不錯(cuò)的關(guān)于ruby的電子書下載地址集合
比較不錯(cuò)的關(guān)于ruby的電子書下載地址集合...2007-10-10
簡(jiǎn)單對(duì)比分析Ruby on Rails 和 Laravel
web應(yīng)用程序開發(fā)中兩個(gè)相對(duì)而言更加流行的框架是 Ruby on Rails 和 Laravel. 它們兩個(gè)都是非常成熟的項(xiàng)目,已經(jīng)面世相當(dāng)長(zhǎng)一段時(shí)間了 .2014-07-07

