`
yangzhihuan
  • 浏览: 165376 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

命名时请留意Rails下的关键字

阅读更多
前些天我在做一个支付集成的接口,对方返回的结果串里面有一个 errors 的字段,用来记录出错时候的错误代码,我需要对结果进行保存,当时我也没多想,直接建了一个model用来保存返回的结果,为了方便容易记,而且可以用一些动态的方法来对返回的串给model做一些动态的赋值,所以model的字段名直接跟返回的结果串中的字段同名.

就因为这个 errors ,又导致了一个杯具的发生.因为在ActiveRecord中有一个叫做 errors 的Hash用来保存 ActiveRecod 验证时的出错信息,很多方法都会对 errors.empty? 做判断来决定是否操作成功的,比如 save 方法.

就因为我用了一个关键字作为字段,结果这个model无论如何也是保存不了,总是报错,提示是String对象没有clear方法,后来跟踪代码,看到 ActiveRecord#valid方法里面的 errors 这才恍然大悟:

我定义的字段errors(String) 覆盖了ActiveRecord类的errors(Hash).

记得我初学rails的时候,做一个评论/回复功能的时候,回复对应的model 直接叫做response,又是一个杯具,可惜我前些天都忘记了这些血的教训.

rails的api中使用了很多常用的英语作为方法名,属性名,一方面我们非常容易使用,但是另一方面也会导致像我遇到的这中杯具的发生,所以在命名的时候要对关键字多留一个心眼.

对方法/变量的命名是一个永恒的话题,没有最好的,只有最合适的,当然还得守规矩,比如不要使用关键字.
1
0
分享到:
评论
3 楼 夜鸣猪 2010-01-25  
星情泪 写道
现在做字段设计的时候name, date这些直观又简短的单词都不敢用了,保不准什么时候出来个冲突

嗯 view的时候 display
process
2 楼 yangzhihuan 2010-01-25  
命名是一件很苦恼的事情.
1 楼 星情泪 2010-01-24  
现在做字段设计的时候name, date这些直观又简短的单词都不敢用了,保不准什么时候出来个冲突

相关推荐

    Rails下运行PHP程序Phuby.zip

    项目的地址在https://github.com /tenderlove/phuby,尽管项目主持人Aaron发布了几个视频去证明phuby能让php在Rails下运行,但实际上在Rails社区 中,估计phuby也只是一个实验品而已。 标签:Phuby

    rails 2.3.2离线安装rails 2.3.2离线安装

    rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails ...

    Ruby on Rails Tutorial

    David Heinemeier Hansson 就是看重了这一点,才在开发 Rails 框架时选择了 Ruby。Rails 常被称作 Ruby on Rails,它让 Web 开发变得从未这么快速,也从未如此简单。在过去的几年中,《Ruby on Rails Tutorial》这...

    [Rails] Crafting Rails Applications (英文版)

    [Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Rails 3 is a huge step forward. You can now easily extend the framework, ...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    Rails项目源代码

    一个用Ruby on Rails搭建的图片分享的网站项目.完整源代码

    Rails之道,完整扫描版

    《Rails之道》按照Rails的各个子系统进行组织编排,分别介绍了Rails的环境、初始过程、配置和日志记录,Rails的分配器、控制器、页面生成和路由,REST、资源和Rails,ActiveRecord的基础、关联、验证和高级技巧,...

    rails-settings, 使用 Ruby on Rails 管理设置.zip

    rails-settings, 使用 Ruby on Rails 管理设置 Rails的设置 ruby gem,通过在单独的数据库表中将它们存储为序列化的哈希来处理。 包含命名空间和默认值。要求ruby 1.9.3或者更高版本Rails 3.1或者更高版本( 包括 ...

    rails敏捷开发的购物车系统

    本资源是参照rails敏捷开发第四版书中的例子,rails的版本是rails3.2.6

    Bootstrap for Rails (2015)

    Bootstrap 3 和 Rails 4(样例用的是Ruby 2.1.1,Rails 4.1.4) Table of Contents Preface 1 Chapter 1: Introducing Web Application Development in Rails 7 Why Bootstrap with Rails? 8 Setting up a Todo ...

    adminlte-rails, AdminLTE Rails gem 将AdminLTE主题与 Rails 资产管道集成.zip

    adminlte-rails, AdminLTE Rails gem 将AdminLTE主题与 Rails 资产管道集成 AdminLTE Rails gem AdminLTE 是后端的高级 Bootstrap 主题。英镑 AdminLTE Rails gem 与 Rails 资产管道集成了英镑AdminLTE主题。安装将...

    提升Ruby on Rails性能的几个解决方案

    Ruby On Rails 框架自它提出之日起就受到广泛关注,在“不要重复自己”,“约定优于配置”等思想的指导下,Rails 带给 Web 开发者的是极高的开发效率。 ActiveRecord 的灵活让你再也不用配置繁琐的 Hibernate 即可...

    Rails101_by_rails4.0

    中文世界唯一一本Rails 4.0.0 + Ruby 2.0.0 的自學書籍

    Agile Web Development with Rails 4

    Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly. You concentrate on creating the application, and Rails takes care of the details., Tens of thousands of ...

    使用Aptana+Rails开发Rails Web应用(中文)

    使用Aptana+Rails开发Rails Web应用 有Aptana的安装配置等等,中文

    rails api(文档)

    rails文档 rails api 英文

    rails指南 中文版

    rails指南 中文版

    rails金典教材3本

    Ruby+on+Rails+3+Tutorial.pdf 应用Rails进行敏捷Web开发第4版.pdf (Agile Web Development with Rails) Rails.Recipes.Rails.3.Edition.pdf

Global site tag (gtag.js) - Google Analytics