- 浏览: 32800 次
- 性别:
- 来自: 北京
最新评论
-
BIAOBIAOqi:
感谢lz。有一个小错误~解法1里,代码最后一行的注释有问题。p ...
ruby元编程 那些书里没有的知识 define_method -
Spirit890903:
终于成功了,这种技术叫做 动态派发技术,常用在Method_m ...
ruby元编程 那些书里没有的知识 define_method -
superheizai:
我是新人,驻留在看书阶段的新人,所以我要说错了,请不要怪我。对 ...
ruby的字符串性能到底如何最佳 -
superheizai:
学习了。我觉得写得不错,练练手,挺好的。
ruby实现删除自定义后缀名文件Find -
witcheryne:
写成工具witcheryne 写道这么麻烦么??rm -rf ...
ruby实现删除自定义后缀名文件Find
文章列表
#encoding: gbk
require 'find'
print "输入目录:"
path=gets.chomp!
print "输入后缀名:"
basename=gets.chomp!
Find.find("#{path}") do |d|
if d.include?(".torrent")
puts "[INFO]删除文件#{d}"
end
end
应该不是 多线程实现的,对于自己用,很实用,对于文件多的,可怕性能有点。。。
render :partial 可以实现代码重用,尤其是在view层设计的例子
1.index.html
<h1>My Blog</h1>
<% @posts.each do |post| %>
<div id="post">
<h2><%= link_to_unless_current post.title,post %></h2>
<%= simple_format post.content % ...
表单开始标签:
<%= form_tag { :action => :save }, { :method => :post } %>
Use :multipart => true to define a Mime-Multipart form (for file uploads)
表单结束标签:
<%= end_form_tag %>
文本框 Text fields
<%= text_field :modelname, :attribute_name, options %>
生成:
<input type="text& ...
【转载】
当你网站访问量上升的时候,你可能为你的rails项目增加一些缓存应用。这个教程将告诉你关于rails缓存的方方面面,帮助你提高rails应用,而不必再为过度的cpu开销而烦心。
rails缓存有几种方式,这篇教程将分几个部分向你分别介绍如何应用不同的缓存方案,以及一些高级的有针对性的缓存应用。
首先介绍最快速的缓存应用:Page Caching,页面缓存
1、为什么要进行缓存
(如果你已经对缓存的必要性有所了解,可以跳过本段)
ruby是一种解释性语言,这意味着ruby代码在没有被执行前,是不会编译成机器能识别的机器码的。
这个特点和php是一样的,但是java在这方面完全不同 ...
@client_ip = request.env["HTTP_X_FORWARDED_FOR"] #取得使用者IP位址資訊
@client_browser = request.env["HTTP_USER_AGENT"] #取得使用者瀏覽器資訊
@http_referer = request.env["HTTP_REFERER"] #取得使用者來源(referer)
@client_language = request.env["HTTP_ACCEPT_LANGUAGE"] #取得使用者支援語系
@serve ...
Rails 3开始使用bundle来管理项目的gem依赖。该命令只在一个含有Gemfile的目录下执行。
Gemfile: Rails 项目所有的依赖包都在这里配置,不像以前通过require来查找
Gemfile.lock: 记录本机目前所有依赖的Ruby Gems及其版本
bundle show #显示所有的依赖包
bundle check #检查系统中缺少那些项目以来的gem包
bundle install #安装项目依赖的所有gem包
bundle update #更新系统中存在的项目依赖包,并同时更新项目Gemfile.lock文件
1.对于rails new demo,默认使用sqlite3数据库,会自动生成数据库
2.schema_migrations表会在执行rake db:migrations 生成
3.rails generate model User 和 rails generate migration DoNothing 都不会触发生成schema_migrations
测试1
rails new demo -d mysql
1.不配置database.yml的mysql密码,对rails server打开网站没影响
2.并且这步骤是不生成对应的demo_development数据库的
3.因为Localhost:3000访问的是Public文件夹里的Index.html,所以不需要访问数据
测试2
rails g controller login index
1. 不配置database.yml的mysql密码,对上面命令无影响
2.但是对访问产生了影响
如:
Mysql2::Error
Access denied for user 'root'@'loc ...
当我们利用cmd命令执行:ruby test.rb的时候,你可能会发现,我们需要cd 到test.rb的目录,可以利用DOS命令实现这个 路径
#关闭命令显示
@echo off
#提示信息
echo Now,listing the controller,please not shutdown the DOS File!
#切换到当前路径,.bat文件和.rb文件放在一起就可以了
set pa=%cd%
#执行ruby脚本
ruby test.rb
pause
这样无论你的脚本在哪,批处理调用ruby test.rb都不会报错。
先说下利用了AutoItX3.dll这个API,这个东西没有怎么办,ruby的watir GEM包里自带这个dll。
如果出现
“unknown OLE server: ‘AutoItX3.Control’(WIN32OLERuntimeError) ”这个错误,可能是因为你的dll没有注册。
解决方式如下:
regsvr32 AutoItX3.dll
路径可能要变下:
如:
regsvr32 C:\Ruby\lib\ruby\gems\1.8\gems\watir-1.6.5\lib\watir\AutoItX3.dll (For Ruby 1.8.6)
regsvr32 C:\Ruby ...
MySQL/Ruby
[Japanese]
This is the MySQL API module for Ruby. It provides the same functions for Ruby programs that the MySQL C API provides for C programs.
Download
tmtm.org
Requirement
MySQL 5.0.27
Ruby 1.8.5
The module may work for other versions, but that has not been verified.
License
This ...
ary=[1,2,3]
ary.each do |i|
puts i
i+=1
redo if i==2
end
输出:1 2 2 3
redo做的动作是:条件满足,则以当前的条件重复一次{ block}的动作,当前的条件包括(当前的变量值)
ary=[1,2,3]
ary.each do |i|
puts i
i+=1
retry if i==2
end
输出:死循环 1
这里我们没有看到 i+=1,输出 2,说明,retry的重复动作包括从{block}外开始,包括i的值。
irb(main):022:0* 1.next
=> 2
irb(main):023:0> "a".next
=> "b"
irb(main):024:0> "1".next
=> "2"
irb(main):025:0>
ruby的next方法,多方便,尤其是"1"
性能比较:
require 'benchmark'
n=(1..1000000).to_a
def num_next(first,last)
while fi ...
rake太强大了,建议大家深入学习。在rails得到了,对于那些处理和维护服务器的脚本,也很有效果。
网站是:http://rake.rubyforge.org/
给那些无法上外网的朋友 爬了个 本地版的
我们知道顶级域,定义域的self是啥?
puts self #main
puts self.class #Object
我们知道当一个方法被调用的时候,如果没有对象接受,默认就是self,如:
def tell_me_who
puts self
end
tell_me_who #main
方法调用是这样的步骤,先查找当前对象的所在类的实例方法存在方法与否,如果存在,调用方法,如果不存在则查看superclass,直到 BasicObject都没找到对于方法的话,就会调用Kernel的method_missing()方法,并且报错,如:
Error:test.rb:8 ...