`

rails 流水

阅读更多

1. 统计字符

"中国人".length =9
"中国人".chars.length =3

2. 路径跳转

def authorize
      session[:orient_uri] = request.request_uri
      ...
   end

def login
      ....
      redirect_to session[:orient_uri]
   end

3. 变量

    局部变量    全局变量    实例变量    类变量    常量
    name           $name       @name     @@name NAME

 

4.Model类方法

在Model中定义的方法一般分为两种:
   1).类方法,
      定义:def self.find_me...
      调用:Friend.find_me
   2).实例方法,
      定义:def find_me...
      调用:@friend.find_me

5.跳过layout渲染

   当我希望所有umails的视图都被一个模板渲染时,可以这样子做: 
   class UmailsController < ApplicationController
   layout 'layouts/users'
         ....
   end 
   但是有时候,我希望umails视图中的部分视图不被渲染,可以这样子做: 
   class UmailsController < ApplicationController
         layout 'layouts/users',:except=>['show']
         ....
   end

6.firefox貌似不支持
   <a href="javascript:kill(newsForm)" class="bluelink">删除</a>
   你必须
   <a href="javascript:kill('newsForm')" class="bluelink">删除</a>
   否则一点反应都没有

7.当你在后来添加/修改一个rake任务后,如何让rake再次执行
   比如说你添加了一个:030_add_area.rb
   首先执行:rake db:migrate version=29
   这时候,scheme_info中的version=29了。
   接下来再次执行:rake db:migrate 
   这时候,它会执行当前version以后的任务,当然就执行30的version咯

 

ruby 文本转时间

 

 

str ="Tue, 10 Aug 2010 01:20:19 -0400 (EDT)"
date =Date.parse str
=>#<Date: 4910837/2,0,2299161>
puts date
2010-08-10

 

str ="Tue, 10 Aug 2010 01:20:19 +0400"
puts Date.parse str
2010-08-10
puts Date.parse(Time.parse(str).utc.to_s)2010-08-09

 

Ruby 转义字符

 

str = str.gsub('<', '&lt;')
    str = str.gsub('>', '&gt;')
    str = str.gsub(/['"]/, '&quot;')
    str = str.lstrip #去掉前后空格
    str = str.delete("\n\r") #去掉换行符
    str = str.delete(" ")#去掉tab

 

 

RUBY获取字符串前N个字或后N个字

 str = "hello word"

puts str[0,5]      #获取前5个字   hello

puts str[6,2]      #获取第6个字后的2个字  wo

puts str[-4,4]     #获取最后4个字    word

ruby 1.8.7+rails 2.3.8 中文似乎为3个字符

 

 

equal?

我们经常要比较两个对象,Ruby中提供了多种比较对象的方法。我们可以通过equal?方法比较两个对象是否相同,通过这种方式是比较两个值是否指向同一个对象的引用。比如:

a = "Ruby"       # 一个字符串对象。
b = c = "Ruby"   # 两个字符串对象指向动一个引用。
a.equal?(b)      # false: a和b是不同的对象。
b.equal?(c)      # true: b和c指向同一个引用。

这种比较方式实际上是比较两个对象的ID是否相同,显然a是一个对象,而b和c指向另一个对象,他们的对象ID是不同的:

a.object_id == b.object_id   # 等同于 a.equal?(b)
 
==来比较对象是否相等
他的作用和equal?方法是不一样,它比较的是两个对象的内容是否相同:
a = "Ruby" # 定义一个字符串对象
b = "Ruby"    # 虽然和a的内容相同,但是他们是不同的对象
a.equal?(b)   # false: a和b指向不同的对象
a == b        # true: 他们的内容是相同的

除了字符串外,数组和字典类也定义了==操作符,如果两个数组或两个字典对象中元素个数相同,且每个元素都相同,那么==返回true.

Numerics对象在比较的时候会做一个简单的最新转换,所以Fixnum类型的1和Float类型的1.0的比较结果是相等。
同样,你可以使用!=来判断两个对象是否不等。
 
eql?方法
Ruby还提供了eql?方法,它与equal?的功能相同,是一种更精炼的写法。
 
三个等号的比较操作===
通常情况下这中方式与==是一样的,但是在某些特定情况下,===有特殊的含义:
在Range中===用于判断等号右边的对象是否包含于等号左边的Range;
正则表达式中用于判断一个字符串是否匹配模式,
Class定义===来判断一个对象是否为类的实例,
Symbol定义===来判断等号两边的符号对象是否相同。
(1..10) === 5 # true: 5属于range 1..10
/\d+/ === "123"  # true: 字符串匹配这个模式
String === "s"   # true: "s" 是一个字符串类的实例
:s === "s"       # true 

 两个点("..")表示范围,两个点(".. ")表示包含尾部元素,三个点("...")表示不包含尾部元素。

分享到:
评论

相关推荐

    Ruby On Rails For Dummies

    - **最佳实践**:随着时间的发展,社区中形成了许多关于 Rails 开发的最佳实践,比如使用 Git 进行版本控制、采用 CI/CD 流水线进行持续集成等。 **总结** 《Ruby on Rails For Dummies》这本书旨在为初学者提供一...

    简述51单片机之流水灯

    在设计-&gt;configure power rails菜单中,可以设置电源和地引脚的默认电压值。一般VCC、VDD设置为5V,GND设置为0V。 软件设计 在设计流水灯时,需要编写软件来控制51单片机的行为。首先,需要定义变量temp来存储当前...

    aws-codepipeline-jenkins-aws-codedeploy_linux:在遵循“四阶段流水线教程”的同时在AWS CodePipeline中创建四阶段流水线时使用此示例。 http:docs.aws.amazon.comcodepipelinelatestuserguidegetting-started-4.html

    Ruby是一种广泛用于Web开发的动态编程语言,常常与Rails框架一起使用。 在压缩包“aws-codepipeline-jenkins-aws-codedeploy_linux-master”中,我们预期会找到一系列配置文件、脚本或者说明,用于指导如何配置AWS...

    gitlab实现持续集成

    GitLab是一款基于Ruby on Rails框架开发的开源版本控制系统,提供了代码仓库管理、问题跟踪和持续集成等功能,可用于支持代码的版本控制和开发流程。持续集成(Continuous Integration,简称CI)是指开发团队频繁地...

    持续集成开源工具

    - **背景**: Redmine是一款用Ruby on Rails (ROR)框架开发的跨平台项目管理软件,支持多种数据库,提供了丰富的特性以满足项目管理的需求。 - **功能特点**: - **项目管理**: 通过“项目”这一核心概念将成员、任务...

    后台布局,框架学习

    - **Ruby on Rails**:Ruby语言的框架,提倡DRY(Don't Repeat Yourself)原则,具有强大的自动化工具。 4. **数据库集成** 后台框架通常与数据库紧密集成,例如MySQL、PostgreSQL、MongoDB等。ORM(对象关系映射...

    Linux(centos7)安装Gitlab

    - 例如,可以创建新的项目或组,设置权限,进行 CI/CD 流水线配置等。 #### 小结 本文介绍了在 CentOS 7 系统上安装 GitLab CE 的详细步骤。通过以上教程,您可以快速地在本地环境中搭建起 GitLab 服务,进而更好地...

    cs4550-hw06

    10. **GenStage**:这是一个处理流水线和事件调度的库,常用于数据流处理和批处理任务,它可以有效地管理生产者、消费者和缓冲区之间的关系。 综上所述,"cs4550-hw06"可能涵盖的Elixir编程知识点广泛,包括语言...

    JFreeChart制作图形报表

    1. `curve_id`:流水号,自动增长。 2. `curve_owner`:区分数据归属,如老公或老婆。 3. `curve_cent`:当天分数。 4. `curve_year`:年份。 5. `curve_month`:月份。 6. `curve_day`:日期。 7. `note`:备注信息...

Global site tag (gtag.js) - Google Analytics