def search
title = params[:product][:keyword]
author_name = params[:product][:author_name]
@products = Product.find(:all, :conditions => [ "title LIKE ? and author_name LIKE ? " , "%#{title}%", "%#{author_name}%" ] )
respond_to do |format|
if @products == nil || @products == ""#验证product对象不为空
flash[:notice] ="can not find the product!"
format.html{redirect_to(products_url)}
format.xml { render :xml => @products }
else if title == nil || title == "" #验证表单不为空
flash[:notice] = "keyword can not be blank !"
format.html{redirect_to(products_url)}
format.xml { render :xml => @products }
else
if @products == nil
flash[:notice] == "can not find!"
else
flash[:notice] = "find the product for you!"
format.html#{ redirect_to(search_products_url(@products)) }
format.xml { render :xml => @products }
end
end
end
end
end
但是一直都执行不了 if @products == nil || @products == ""#验证product对象不为空
以及 else
if @products == nil
其实:all的时候返回的是一个数组 数组为空 可以用@products.empty? 来判断
或者用@products.length > 0来判断
如果是一个对象 也就是object 可以用@products.nil?来判断
而且
find_by_id#没有返回就会出错
分享到:
相关推荐
**Ajax on Rails** 是一本关于如何在Rails框架中利用Ajax技术来提升Web应用程序用户体验的书籍。Ajax(异步JavaScript和XML)技术允许开发者在不刷新整个页面的情况下更新部分网页内容,从而提供更流畅、响应更快的...
书中还涉及了如何使用Rails的路由帮助方法,如何在路由中加入条件判断,以及如何使用Rails的路由命名空间和作用域来组织代码。 路由系统与Rails的Action Controller紧密相连,Action Controller是Rails中负责处理...
### Ruby on Rails (Rails2) 关键知识点解析 #### Ruby on Rails 概述 - **Ruby on Rails**(简称 Rails 或 RoR)是一种基于 Ruby 语言的 Web 开发框架,它采用模型-视图-控制器(Model-View-Controller, MVC)架构...
使用Ajax判断购物车是否为空,并相应地隐藏或显示购物车。 **9.5 迭代D5:JavaScript被禁用时的对策** 为不支持JavaScript的用户提供一种备选方案。 **9.6 我们做了什么** 总结了本章的重点内容,回顾了使用Ajax...
这意味着读者在阅读时需要结合自身情况进行判断。 ### 关键知识点总结 1. **Ruby on Rails简介**:介绍了Ruby on Rails的基本概念、特点及其MVC架构模式。 2. **安装与配置**:详细讲解如何在不同的操作系统上安装...
例如,判断当前用户是否有编辑权限的功能可以通过辅助函数实现。 - **示例**: ```erb (post) %> ("Edit", edit_post_path(post)) %> ``` 2. **预装饰辅助函数**:对于常用字段的操作,可以提前定义辅助...
6. **`if`和`unless`**:用于条件判断。如`<% if @items.any? %> ... <% end %>`, 可以根据实例变量`@items`是否为空决定是否显示某些内容。 7. **`cycle`**:在循环中交替输出值,常用于背景颜色切换。如`['red', ...
此外,为了提高用户体验,我们还可以设计一个简单的命令行界面,让用户能够方便地输入火车数量和出站序列,程序实时反馈结果。这不仅能够帮助用户理解队列数据结构的工作原理,还能让他们在实践中学习编程和逻辑思考...
- **1-4 循环和判断语句**:如果循环或判断中有长表达式,同样应在低优先级操作符处分行,并适当缩进,确保逻辑清晰。 - **1-5 单条语句原则**:避免将多个短语句写在同一行,确保每行只包含一条语句,提高...
7. **查询优化**:PostGIS提供了强大的空间查询功能,如`ST_Distance`用于计算点之间的距离,`ST_Within`判断点是否在某一区域内等。利用这些函数,你可以实现高效的地理位置查询,如搜索附近的地点。 8. **安全性...
`方法在视图和模型中进行条件判断。这种设计使得权限检查贯穿于整个请求生命周期。 ### 四、标签解析 "Ruby开发-身份验证和OAuth"标签表明,这个插件是Ruby开发的一部分,关注的是身份验证和OAuth(开放授权)相关...
8. **辅助方法**:在视图中提供额外的功能,如链接生成、条件判断等。 9. **Gemfile和Bundler**:管理项目依赖,通过Bundler确保所有依赖项的版本一致。 10. **测试**:Rails提供测试套件,包括Unit Tests、...
1. 基本语法:讲解如何声明变量、操作数据类型,以及如何使用控制结构进行逻辑判断。 2. DOM操作:介绍Document Object Model(DOM),它是HTML和XML文档的结构化表示,以及如何使用JavaScript来查找、添加、修改和...
- `case` 语句首先对 `expression` 进行匹配判断,然后根据匹配结果选择执行相应的分支。 - 使用 `===` 运算符来进行条件匹配。 - 支持多个 `when` 子句,可以同时匹配多个条件。 - **示例**: ```ruby $age =...
”,平常程序中都有使用,但是感觉对其缺乏深入理解,今天读 rails 部分源码的时候拿捏不定其中一个判断的意思,于是趁机深入研究了一番,总算觉得比较清楚了,今天做一下笔记,以作备忘。 “==” 最常见的相等性...
* Rails 问题:使用栈可以解决 Rails 问题,即判断是否可以将火车 coaches 重新排列以满足一定的顺序。 四、栈和队列的实现和应用实例 本节提供了多个栈和队列的实现和应用实例,例如: * 实现一个算法,判断依次...
### Ruby on Rails 在 Ping++ 平台实现支付 在当今数字化时代,支付接口的重要性不言而喻。无论是电商平台、在线...此外,为了提高用户体验,还可以添加前端页面来显示支付进度和结果,使用户能够直观了解支付状态。