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

ruby陷阱,欢迎补充

    博客分类:
  • ruby
阅读更多

1 局部变量优先级大于方法名
如果定义了和某方法同名的局部变量,要么不这么做,要么在调用方法时加上self
module LoginSytem
   def logged_in_user  
      p 'method logged_in_user'
   end
end
class UserController
   include LoginSytem
   def login
        logged_in_user='bad man'
        logged_in_user#will not call method
   end
end
UserController.new.login


毕竟local var 可见范围很有限,所以这个陷阱很少人会跳。下个陷阱就不同了,很多熟悉ruby的人都一一中招。

2 调用以=号结尾的方法,一定要加上self

为了增强可读性,ruby允许以!,?,=结尾的方法名称。其中,以=号结尾的方法,在某些时候会产生陷阱。
module LoginSytem
   def logged_in_user=(user)
        #put  user to session
      p 'method logged_in_user'
   end
end
class UserController
   include LoginSytem
   def login
        logged_in_user='zhang'#wrong!!
   end
end
UserController.new.login

运行后发现,LoginSytem中定义的方法根本没有被调用。
老兄,不要吃惊,这里你必须加上self。
分享到:
评论
2 楼 rainchen 2007-11-23  
before_filter在不同的环境(development和production)的行为好像不同,现在遇到这个问题,进一步调试中,有待验证(如果确认了,这算是Rails的陷阱了)。

原来不是before_filter的错,而是class_inheritable_accessor惹的祸
1 楼 rainchen 2007-11-22  
真的要?这里很多:
URL http://www.blogjava.net/Files/cap/ruby_xj.rar

相关推荐

    ruby 文档的欢迎界面

    ruby 文档的欢迎界面

    ruby陷阱

    ruby一些基本类的操作

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby的陷阱

    在深入学习Ruby的过程中,开发者可能会遇到一些不直观或者容易出错的地方,这就是所谓的"Ruby的陷阱"。本文将详细探讨这些陷阱,帮助你避免常见问题,提升编程效率。 1. **隐式返回** Ruby中的方法调用会隐式返回...

    ruby DBI ruby DBI ruby DBI

    ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...

    ruby2ruby.zip

    ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby

    Ruby-rubybuild编译和安装Ruby

    Ruby是一种动态、开源的编程语言,以其简洁、优雅的语法和强大的元编程能力著称。在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build...

    Ruby-rubyinstall安装RubyJRubyRubiniusMagLevorMRuby

    Ruby是一种强大的、面向对象的脚本语言,广泛用于Web开发、服务器端编程和各种应用程序。在Ruby的世界里,管理不同的Ruby实现(如MRI、JRuby、Rubinius、MagLev和MRuby)是非常重要的,这有助于开发者根据项目需求...

    Ruby完全自学手册 下

    《Ruby完全自学手册》是一本完全覆盖Ruby和Ruby on Rails的完全自学手册。《Ruby完全自学手册》的特色是由浅入深、循序渐进,注重理论和实践的结合。虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的...

    ruby源代码 ruby源代码 ruby源代码 ruby源代码2

    ruby源代码 ruby源代码 ruby源代码 ruby源代码2

    src-oepkgs/ruby-ruby2ruby

    src-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2...

    Ruby完全自学手册

    Ruby是一种简洁而功能强大的编程语言,由日本的松本行弘(Yukihiro "Matz" Matsumoto)在1993年开发,并于1995年公开发布。Ruby语言设计之初就非常注重开发人员的编程体验,它拥有自然、表达性强的语法,易于阅读和...

    ruby源代码 ruby源代码 ruby源代码 ruby源代码4

    ruby源代码 ruby源代码 ruby源代码 ruby源代码4

    Ruby-TensorStream用Ruby重新实现TensorFlow

    **Ruby-TensorStream:用Ruby重现实现TensorFlow** Ruby-TensorStream是一个开源项目,旨在为Ruby开发者提供一个类似于Google TensorFlow的深度学习框架。它的核心目标是让Ruby程序员能够利用TensorFlow的强大功能...

    Ruby 编程语言的书籍

    2. **陷阱与注意事项**:通过实际案例分析常见的错误和潜在问题,为读者提供宝贵的实践经验。 #### 五、总结 《The Book of Ruby》不仅是一本优秀的Ruby编程入门书籍,更是一部全面涵盖Ruby编程语言各个方面的重要...

    Ruby资源ruby-v3.1.1.zip

    Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本资源“ruby-v3.1.1.zip”包含了Ruby的最新版本3.1.1,这是一个重要的里程碑,因为它引入了新特性、性能优化以及对旧...

    ruby安装包下载 | ruby环境搭建

    Ruby是一种强大的动态编程语言,广泛应用于Web开发,脚本编写,服务器管理等领域。为了在没有外网连接的环境中搭建Ruby环境,你需要提前下载并准备相关的安装包。在提供的压缩包中,包含了三个关键文件:`ruby-2.7.2...

    Ruby 教程 The Book of Ruby

    ### Ruby 教程《The Book of Ruby》知识点总结 #### 一、书籍基本信息 - **书名**:《The Book of Ruby》 - **作者**:Huw Collingbourne - **出版年份**:2011年 - **出版社**:No Starch Press - **ISBN-10**:1-...

    Ruby Under a Microscope

    ruby interpreter 原理探討 At first glance, learning how to use Ruby can seem fairly simple. Developers around the world find Ruby’s syntax to be graceful and straightforward. You can express ...

    ruby trap 初学者使用

    "Ruby Trap"这个标题暗示了这是一本关于Ruby编程中常见问题和陷阱的电子书,旨在帮助初学者避免在学习过程中遇到的困扰。下面,我们将深入探讨一些可能涵盖在书中的Ruby编程知识点。 1. **变量和常量**: - Ruby有...

Global site tag (gtag.js) - Google Analytics