最近工作中遇到了个问题,写测试代码时发现的。
控制器内:
class AnysController < ApplicationController
before_filter :require_admin
def index
if params[:type] then
@anys = Any.list_by_type(params[:type])
else
@anys= Any.all
end
end
end
测试代码:
# it is not true
Any.create(type: 1)
Any.create(type: 2)
Any.create(type: 4)
assert_equal Any.all.count, 3
get 'index', :format => :json, :type => 1
retval = JSON.parse(@response.body)
assert_equal retval.count, 1
在运行测试时,会在底下一行遇到错误,实际上retval.count=3的,也就是程序走的是else语句的部分。但只要把控制器内的params[:type]修改一下,则不会出现此错误。
if !params[:type].nil? then
...
这是为什么呢?
ruby内不是说除了nil和false都是 true 吗? 作为条件时,params[:type] 和!params[:type].nil? 结果不是一样的?
分享到:
相关推荐
7. **哈希与符号化键(Hashes and Symbolized Keys)**:在Rails中,使用符号作为哈希键可以提高性能,因为符号是不可变的,且在内存中只存储一次。 8. **部分视图(Partials)**:部分视图是可重用的视图代码块,...
Rails指南中文版是针对Ruby on Rails框架的一份详尽教程,旨在帮助开发者深入理解并熟练掌握这个强大的Web应用开发工具。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-...
《Rails101_by_rails4.0》通过 Lean Publishing 的出版流程,让书籍在发布过程中能够不断吸纳读者的反馈,通过多次迭代优化内容,直至形成一本高质量的自学教程。Lean Publishing是指利用轻量级的工具,快速出版一...
《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别是那些想要从零开始掌握这项技术的新手。 #### 二、...
routing-filter 包裹了 Rails 路由系统的复杂野兽,在 Rails URL 识别和生成中提供了看不见的灵活性和强大功能 路由过滤器围绕着复杂的野兽,Rails 路由系统在 Rails URL 识别和生成中提供了看不见的灵活性和强大...
例如,要在Rails应用中创建一个新的资源,如博客文章,你需要在models目录下创建一个名为`post.rb`的文件,定义Post类,并设置属性如标题和内容。在controllers目录下创建`posts_controller.rb`,定义控制器方法,如...
**路由(Routing)** 在Rails中定义了URL到控制器动作的映射。在`config/routes.rb`文件中,你可以看到如何配置blog应用的路由,例如`resources :posts`会自动生成对应文章的各种CRUD操作的路由。 **数据库和...
RSpec是Rails开发中的一个行为驱动开发(BDD)测试框架,用于编写可读性强、易于理解的测试代码。通过RSpec,开发者可以清晰地表述他们期望的代码行为,确保软件按预期工作。在本案例中,它可能被用来验证生成CHM...
在Rails项目中安装Mongrel通常通过RubyGems进行,这是一个Ruby的包管理器。首先确保RubyGems已经安装,然后在命令行执行以下命令: ```bash gem install mongrel ``` 安装完成后,可以通过`mongrel_rails`命令来...
在Rails中,MVC架构是非常关键的一部分。Model代表数据模型,负责与数据库交互,处理业务逻辑;View是用户界面,展示数据;Controller作为两者之间的桥梁,处理用户请求,协调Model和View的数据流动。 教程会详细...
Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用程序的开发。Rails由David Heinemeier Hansson于2004年创建,它提倡“约定优于配置...
Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...
- **减少错误**:Rails通过一系列约定和内置工具减少了开发过程中的错误可能性。 - **易于集成**:与多种数据库和其他技术栈兼容,使得开发者可以灵活选择技术方案。 #### 二、Rails与敏捷开发 - **敏捷开发**:...
`GoOnRails`是专门为Rails开发者设计的一个生成器,它允许在Rails应用中集成Go代码,创建Go API服务。这个工具简化了在Rails项目中使用Go进行后端处理的流程,使开发者可以利用Go的性能优势处理高并发请求,同时保留...
3. **路由(Routing)**:Rails的路由系统根据URL映射到特定的控制器和动作,定义了应用的导航结构。 4. **测试驱动开发(Test-Driven Development, TDD)**:Rails鼓励使用TDD,提供了Rspec和Capybara等强大的测试...
Rails是一个基于Ruby语言的开源Web开发框架,它遵循MVC(Model-View-Controller)架构模式。在处理中文数据时,由于不同系统、数据库和文件之间的编码差异,可能会出现乱码现象。 中文乱码问题通常出现在以下几个...
5. **路由**:Rails的路由系统将URL映射到控制器的行动上,提供了一种灵活的方式来定义和管理应用的路由结构。 描述中提到的博文链接指向了一个ITEYE博客文章,尽管具体内容未提供,但通常这样的博客可能会包含...