- 浏览: 2533503 次
- 性别:
- 来自: 苏州
最新评论
-
jsntghf:
peio 写道这个怎么运行?Ruby On Rails的环境搭 ...
多文件上传之uploadify -
peio:
这个怎么运行?
多文件上传之uploadify -
往事如烟1:
我的项目是自己init了一个原始的project,之后将ver ...
React Native热部署之CodePush -
jsntghf:
往事如烟1 写道我按照你的说明进行,发现app退出之后,在进入 ...
React Native热部署之CodePush -
往事如烟1:
我按照你的说明进行,发现app退出之后,在进入不正确,请问是什 ...
React Native热部署之CodePush
请您先登录,才能继续操作
文章列表
Ruby中获取一个HTTP/FTP地址的内容,有一个非常方便的方法,就是使用open-uri库。
open-uri库是ruby的标准附加库中所带的,引用了该附加库后,就可以像打开普通文件那样打开一个http/ftp的uri的资源。
有区别的地方在这里:
require 'open-uri'
open('d:/test.txt'){|file|
puts file.class => #File
}
open('http://www.xuexi6.com'){|file|
puts file.class => #Tempfile
} ...
不常用,可以用于学习。
require 'socket'
include Socket::Constants
def scan_port
if $*[0] == nil or $*[1] == nil or $*[2] == nil
abort "用法示例:ruby #$0 ip地址 开始端口 结束端口 EX:如ruby #$0 localhost 1 1024"
end
time = Time.now
scan $*[0], $*[1], $*[2]
puts "\n共耗时 ...
这个功能虽然简单,但是比较常用。
下面我简要描述一下。
html代码:
<link href="stylesheet/style.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="javascript/checkpwd.js"></script>
请输入密码<input type="password" name=&quo ...
一、GBK和UTF-8的转换
用GBK而不要用GB2312,因为GBK不仅包含简体中文,还包括繁体中文等,是一个大字符集。
# utf8 to gbk
def u2g(ucode)
begin
"#{Iconv.conv('gbk','utf-8',ucode)}"
rescue
" #{ucode} " #如果转换不成功,则不转换,并在字符串两边加入空格,避免构造出错误的sql字符串。
end
end
在网络上抓取的信息,可使用这个方法转换。
二、RUBY DBI
ruby和s ...
!!true和!!false,加上!!似乎有点多余,但是在!!nil时就不同了,返回的结果为false。
# 判断用户是否登录
def logged_in?
!!current_login_space
end
# 取出当前登录用户
def current_login_space
@current_space = Space.find(cookies[:space_id])
end
如果用户未登录,则current_login_space返回的值就为nil,如果将这个空值当做fasle赋值给其他变量,则有可能出现莫名其妙的问 ...
很多情况下,我们会对时间进行特定格式输出。
在此,举两个例子。
一、集成多种方式输出
在config/initializers/date_time_formats.rb中输入如下代码:
Time::DATE_FORMATS.merge!(
:full => '%B %d, %Y at %I:%M %p',
:md => '%m/%d',
:mdy => '%m/%d/%y',
:time => '%I:%M %p'
)
我们可以这样去用它:
Time.now.to_s(:full) => #December ...
首先进行安装
gem install menu_helper
下面看个简单的例子。
路由如下所示:
map.with_options(:controller => 'site') do |site|
site.home '', :action => 'index'
end
map.with_options(:controller => 'about_us') do |about_us|
about_us.about_us 'about_us', :action => 'index'
about_us.c ...
众所周知,Rails可以将session数据存入数据库(此处以MySQL为例)。然而,这些session数据并不会被删除,这意味着你的sessions表会越来越大。
因而,你可能会想到一个简单的解决方案,那就是清空sessions表,为此,rails为我们提供了一个rake命令,那就是rake db:sessions:clear。
这将会导致一个问题,所有过期的以及未过期的session数据都会被清除。
然而,还有一个解决方案,它只会清除一些过期的session数据。
下面举个例子:清除1天前的session数据。
desc "Clear exp ...
有时你可能会忘了rails中定义的一些日期时间格式,或许你会忘了自己加入的一些日期时间格式。
下面的代码将会列出rails中的日期时间格式。
task :date_formats => :environment do
now = Time.now
[:to_date, :to_datetime, :to_time].each do |conv_meth|
obj = now.send(conv_meth)
puts obj.class.name
puts "=" * obj.class.name.length
...
首先写一个类,用来封装获取系统平台以及浏览器信息的方法
class Info
attr_accessor :env, :browser, :platform
def initialize(request)
self.env = request
get_platform
get_browser
end
protected
#获取系统平台
def get_platform
begin
if self.env['HTTP_USER_AGENT'] =~ /Win/i
self.p ...
一、camelize
这个方法可以将字符串转成驼峰形式,并且可以将字符串中的/替换成::将路径转换成命名空间时比较有用。
def camelize
return self.gsub( /\/(.?)/ ) {
"::" + $1.upcase
}.
gsub( /(^|_)(.)/ ) {
$2.upcase
}
end
"active_record".camelize #=> "ActiveRecord"
"active_record/e ...
1、交谈
尽可能多地跟其他软件开发者交谈;
培养个人关系;
跟意见与你相左的人交流;
跟经验更丰富的人交流;
跟阅历丰富的人交流。
多到Groups 中去,尤其是交谈自由随意的Groups——不约束主题,不约束交谈内容。
2、选择更好的环境
好多开发者都有成为优秀开发者的所有优点,只是他们没有机会在好的环境中工作。这里所说的好的环境,是指周围有一帮愿意且能够分享他们知识的开发者。如果你是“菜鸟级”开发者,你的成长路线将因他们而大为缩短;如果你是“高级”开发者,你的能力也会因为同伴的刺激和挑战而提高。
3、参与开源
也许你的工作会枯燥,甚至不合你的兴 ...
这个例子构建在第一个例子(http://www.iteye.com/topic/524316)的基础上,但是需要将搜索到的文件打包到zip文件中。
内建的zlib模块可帮助处理gzip文件,对于大多数情况它都够好。在这里我将使用另一个很好的Ruby库,即“rubyzip”,来创建和处理zip归档文件。
安装rubyzip
gem install rubyzip
require 'find'
require 'zip/zip'
puts ""
puts "------------------File Search and Zi ...
在指定路径中搜索符合给定模式的文件,并给出关于这些文件的详细信息。实现这一目标不必依赖于任何命令行程序,只需使用Ruby内建的API。
因此,这个例子在有Ruby运行的任何平台上都能运行。
而且,这个例子展示了Ruby在简化脚本编程需求方面有多强大。它不是简单地模拟"find"命令,而是构建在该命令之上,因而在使用Ruby时具有很强的定制能力。
require 'find'
puts ""
puts "-----------------------File Search---------------------------- ...
Rails2.2的ActiveSupport新增加了几个方法,非常有意思。在此列举其中的两个:StringInquirer和many?进行试用。
一、StringInquirer
有时候,我们有这样的需求,看一个用户是否是激活状态,数据是从数据库里查出来的:
user = User.find(params[:id])
user.status # => "active"
user.status == "active" # => true
user.status == "inactive" # =& ...