`
shatler
  • 浏览: 29971 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

rails中url传值一现象

    博客分类:
  • ruby
阅读更多

最近工作中遇到了个问题,写测试代码时发现的。

 

控制器内:

 

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? 结果不是一样的?

分享到:
评论

相关推荐

    Ruby on Rails中文指南

    7. **哈希与符号化键(Hashes and Symbolized Keys)**:在Rails中,使用符号作为哈希键可以提高性能,因为符号是不可变的,且在内存中只存储一次。 8. **部分视图(Partials)**:部分视图是可重用的视图代码块,...

    rails指南 中文版

    Rails指南中文版是针对Ruby on Rails框架的一份详尽教程,旨在帮助开发者深入理解并熟练掌握这个强大的Web应用开发工具。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-...

    Rails101_by_rails4.0

    《Rails101_by_rails4.0》通过 Lean Publishing 的出版流程,让书籍在发布过程中能够不断吸纳读者的反馈,通过多次迭代优化内容,直至形成一本高质量的自学教程。Lean Publishing是指利用轻量级的工具,快速出版一...

    Rails 101 入门电子书

    《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别是那些想要从零开始掌握这项技术的新手。 #### 二、...

    routing-filter 包裹了 Rails 路由系统的复杂野兽,在 Rails URL 识别和生成中提供了看不见的灵活性

    routing-filter 包裹了 Rails 路由系统的复杂野兽,在 Rails URL 识别和生成中提供了看不见的灵活性和强大功能 路由过滤器围绕着复杂的野兽,Rails 路由系统在 Rails URL 识别和生成中提供了看不见的灵活性和强大...

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

    例如,要在Rails应用中创建一个新的资源,如博客文章,你需要在models目录下创建一个名为`post.rb`的文件,定义Post类,并设置属性如标题和内容。在controllers目录下创建`posts_controller.rb`,定义控制器方法,如...

    RailsGuides中那个blog程序源码

    **路由(Routing)** 在Rails中定义了URL到控制器动作的映射。在`config/routes.rb`文件中,你可以看到如何配置blog应用的路由,例如`resources :posts`会自动生成对应文章的各种CRUD操作的路由。 **数据库和...

    Rails 中mongrel的安装

    在Rails项目中安装Mongrel通常通过RubyGems进行,这是一个Ruby的包管理器。首先确保RubyGems已经安装,然后在命令行执行以下命令: ```bash gem install mongrel ``` 安装完成后,可以通过`mongrel_rails`命令来...

    Rails入门教程一(翻译).pdf

    在Rails中,MVC架构是非常关键的一部分。Model代表数据模型,负责与数据库交互,处理业务逻辑;View是用户界面,展示数据;Controller作为两者之间的桥梁,处理用户请求,协调Model和View的数据流动。 教程会详细...

    Ruby On Rails中文教材(PDF)

    Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用程序的开发。Rails由David Heinemeier Hansson于2004年创建,它提倡“约定优于配置...

    Rails项目源代码

    Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...

    敏捷Rails中文教程

    - **减少错误**:Rails通过一系列约定和内置工具减少了开发过程中的错误可能性。 - **易于集成**:与多种数据库和其他技术栈兼容,使得开发者可以灵活选择技术方案。 #### 二、Rails与敏捷开发 - **敏捷开发**:...

    Ruby-GoOnRails使用Rails生成器来生成一个Golang应用

    `GoOnRails`是专门为Rails开发者设计的一个生成器,它允许在Rails应用中集成Go代码,创建Go API服务。这个工具简化了在Rails项目中使用Go进行后端处理的流程,使开发者可以利用Go的性能优势处理高并发请求,同时保留...

    中文版rails教程

    3. **路由(Routing)**:Rails的路由系统根据URL映射到特定的控制器和动作,定义了应用的导航结构。 4. **测试驱动开发(Test-Driven Development, TDD)**:Rails鼓励使用TDD,提供了Rspec和Capybara等强大的测试...

    Rails的中文乱码问题

    Rails是一个基于Ruby语言的开源Web开发框架,它遵循MVC(Model-View-Controller)架构模式。在处理中文数据时,由于不同系统、数据库和文件之间的编码差异,可能会出现乱码现象。 中文乱码问题通常出现在以下几个...

    Rails

    5. **路由**:Rails的路由系统将URL映射到控制器的行动上,提供了一种灵活的方式来定义和管理应用的路由结构。 描述中提到的博文链接指向了一个ITEYE博客文章,尽管具体内容未提供,但通常这样的博客可能会包含...

    rails2.3.2

    描述中的 "ruby and rails 的框架rails-2.3.3.zip" 提到的是 Rails 的另一个版本 2.3.3,尽管与标题中的版本号不完全匹配,但我们可以推断这是关于 Rails 2.3.x 系列的讨论。这个压缩包很可能包含了 Rails 框架的源...

Global site tag (gtag.js) - Google Analytics