08 2013 档案
摘要:Regexp正则表达式的类。正则表达式的字面值是以双斜线内夹表达式的形式生成的。/^this is regexp/还可以使用Regexp.new(string)来动态地生成正则表达式对象。超类:Object类方法:Regexp.compile(string[, option[, code]])Regexp.new(string[, option[, code]])编译string后生成并返回一个正则表达式对象。若第二参数是Fixnum的话,其值可以任选下列中的若干项Regexp::IGNORECASERegexp::MULTILINERegexp::EXTENDED若第二参数并非Fixnum,
阅读全文
摘要:今天在使用rvm 1.9.3 --default设置默认的ruby的命令时出现[ruby] view plaincopyRVMisnotafunction,selectingrubieswith'rvmuse...'willnotwork. 查看官方的使用帮助之后发现是缺少了加载rvm的命令加执行rvm命令之前使用如下命令[ruby] view plaincopy$source~/.rvm/scripts/rvm 接下来重新运行rvm use 1.9.3 --default。之后提示信息如下:[ruby] view plaincopyUsing/home/wangyuyu/.r
阅读全文
摘要:启动mongod root@wangyuyu-Vostro-1440:/usr/bin# ./mongod错误提示:Sat Aug 17 09:02:02 [initandlisten] ERROR: listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017Sat Aug 17 09:02:02 [initandlisten] ERROR: addr already in use原因是启动mongod时端口被占用。解决办法:使用命令 root@wangyuyu-Vostro-1440:/.
阅读全文
摘要:config.gem "acts-as-taggable-on", :version => '1.0.19' # tag类config.gem "paperclip", :version => '2.3.1.1' # 文件上传config.gem 'state_machine', :version => '0.8.0' # 状态机config.gem 'settingslogic', :version => '2.0.5' # yml配
阅读全文
摘要:转自http://shiningray.cn/hierarchical-data-database.html无论你要构建自己的论坛,在你的网站上发布消息还是书写自己的cms[1]程序,你都会遇到要在数据库中存储层次数据的情况。同时,除非你使用一种像XML[2]的数据库,否则关系数据库中的表都不是层次结构的,他们只是一个平坦的列表。所以你必须找到一种把层次数据库转化的方法。存储树形结构是一个很常见的问题,他有好几种解决方案。主要有两种方法:邻接列表模型和改进前序遍历树算法在本文中,我们将探讨这两种保存层次数据的方法。我将举一个在线食品店树形图的例子。这个食品店通过类别、颜色和品种来组织食品。树形
阅读全文
摘要:Formtastic is a Rails plugin by Justin French that aims to take the headaches out of building forms in Rails views. To build it, Justin wrote down how he'd like a form creation DSL to look and then worked backwards to building the code necessary to implement that DSL. The result is a very obviou
阅读全文
摘要:如果你发布你的blog。那么其他人就可以随便修改和添加博客了。Rails提供了一个非常简单的http认证系统,可以非常有帮助的解决这种情况。在PostsController里面我们需要一个方法阻止那些没有授权的用户的操作。这时候我们可以使用http_basic_authenticate_with 方法。这个方法通过的情况下才能处理http请求。我们的例子里面需要除了index,show之外的方法都需要认证。[html] view plaincopyclassPostsController"dhh",:password=>"secret",:exce
阅读全文
摘要:之前我们已经看到用脚手架运行的model程序。现在是时候第二个model了。第二个model用来处理post的评论。7.1 新建一个模型Rails模型使用一个单一的的名称,其相应的数据库表使用复数名称。像模型来处理comments表,模型的名字所comment。即使你不想使用脚手架来产生全部代码。很多程序还是用generators来产生控制器和模型。新建一个模型可以像下面一样:运行命令。[html] view plaincopy$railsgeneratemodelCommentcommenter:stringbody:textpost:references这个命令将会生成下面几个文件app/
阅读全文
摘要:在blog 应用程序中。你可以通过脚手架(scaffolded)开始建立一个资源。这将是单一的blog 提交。请输入以下命令[html] view plaincopy$railsgeneratescaffoldPostname:stringtitle:stringcontent:text脚手架将会建立一些文件和目录,然后编辑config/routes.rb文件。下面是脚手架建立的文件概要。FilePurposedb/migrate/20100207214725_create_posts.rb建立 posts 表在你的数据库整合程序(名字将包含一个不同时刻)app/models/post.rbP
阅读全文
摘要:共同点:都是用来屏幕输出的。 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号);另外如果内容参数中有转义符,输出时将先处理转义再输出p 基本与puts相同,但不会处理参数中的转义符号print 基本与puts相同,但输出内容后,不会自动在结尾加上换行符s = "aaaa\nbb\tbb"p sp "****************"puts sp "****************"print s输出结果为:"aaaa\nbb\tbb""****************&
阅读全文
摘要:在程序中定义一个数组在程序中定义一个数组,因为我们在下面说明。fruits = ["apple", "orange", "lemon"]scores = [55, 49, 100, 150, 0]如果你是指使用数组的数组#[]的方法,我们将指定数目的元素的数组作为参数。我单元号是从0开始。在上面的例子中,fruits[0]返回“apple”,scores[3]将返回150。也可以是一个(嵌套)嵌套的序列如下所示。fruits = [3, ["apple", 250], ["orange", 40
阅读全文
摘要:In Ruby, you check with nil? if an object is nil:article = nilarticle.nil? # => trueempty? checks if an element - like a string or an array f.e. - is empty:# Array[].empty? #=> true# String"".empty? #=> trueRails adds the method blank? to the Object class:An object is blank if it‘
阅读全文
摘要:ActiveRecordActiveRecord 是 Rails 的 ORM 元件,負責與資料庫溝通,讓我們可以用物件導向的語法操作資料庫。在”打造 CRUD 應用程式”一章中提到的對應概念如下:將資料庫表格(table) 對應到一個類別(classe)類別方法就是操作表格(table)將資料庫一列 (row) 對應到一個物件(object)物件方法就是操作個別的資料(row)將資料庫欄位(column) 對應到物件的屬性(object attribute)因此,資料庫裡面的資料表,我們用一個 Model 類別來表示,而其中的一筆資料,就是一個 Model 物件。ActiveRecord 這個
阅读全文
摘要:Shell基础:你可以通过打开Linux的terminal(终端)来执行Shell命令。Shell的种类有很多种,例如CSH,Bourne Shell,Korn Shell。在现在的大多数Linux发行版中,默认的Shell一般都是Bourne again shell(bash)。想看看你的Shell是哪一种,执行下面的命令echo $SHELL在Linux中,$符号代表一个shell变量。所有的shell都用这种方式使用变量。有一些shell变量在你的系统启动的时候就有了默认值。例如,$SHELL;$LOGNAME是你的登录名,而$PATH变量指明了你的shell命令的搜索范围。echo命令
阅读全文
摘要:环境: Ubuntu 13.04安装MongoDB$sudo apt-get install mongodb会自动安装libpcrecpp0 libboost-system1.42.0 libboost-filesystem1.42.0libboost-program-options1.42.0 libboost-thread1.42.0 xulrunner-2.0-mozjsmongodb-clients mongodb-server mongodb-dev mongodb 等依赖包。$ps aux | grep mongod安装Python语言驱动$sudo apt-get install
阅读全文
摘要:一、开始ActiveAdminActive Admin是一个发布在RAILS3中使用的Gem。1、我们为了快速开始我们对Active Admin的了解,我们首先安装它:在你GemFile中添加gem 'activeadmin'2、更新你的Gembundle install3、运行installerrails generate active_admin:install4、安装的installer会创建一个initializer,这个initializer采用Active Admin默认的配置,把所有需要的配置都写进一个文件夹app/admin里面。同时,这个时候会显示相关的配置信
阅读全文
摘要:1.linux下启动mysql的命令:mysqladmin start/ect/init.d/mysql start (前面为mysql的安装路径)2.linux下重启mysql的命令:mysqladmin restart/ect/init.d/mysql restart (前面为mysql的安装路径)3.linux下关闭mysql的命令:mysqladmin shutdown/ect/init.d/mysql shutdown (前面为mysql的安装路径)4.连接本机上的mysql:进入目录mysql\bin,再键入命令mysql -uroot -p, 回车后提示输入密码。退出mysql命
阅读全文
摘要:在使用update_attribute方法时,不走validation走validation的方法:createcreate!savesave!updateupdate_attributesupdate_attributes!跳过validation的方法:decrement!decrement_counterincrement!increment_countertoggle!touchupdate_allupdate_attributeupdate_columnupdate_counters
阅读全文
摘要:validates_presence_of :login, :message => "用户名不能为空!" validates_length_of :login, :minimum => 4, :message => "用户名长度须为4到20位字母或数字!" validates_uniqueness_of :login,:case_sensitive => false, :message => "该用户名已存在!" validates_presence_of :password, :message =>
阅读全文
摘要:Time的常用函数时间对象. Time.now返回当前时间.1、Time.atTime.at(time[, usec])返回time所指时间的Time对象. time可以是Time对象,也可以是表示自起算时间以来的秒数的整数或浮点数.若浮点精度不够时,可以使用usec. 它将返回time +(usec/1000000)所表示的时间. 此时,time和usec都必需是整数.生成的Time对象将使用地方时的时区.2、Time.gm、Time.utcTime.gm(year[, mon[, day[, hour[, min[, sec[, usec]]]]]])Time.gm(sec, min,ho
阅读全文
摘要:1. rails中类与对象与SQL中表与行的关系rails中提供了对象关系映射(ORM),将模型类映射至表,模型类的关联表名是类名小写后的复数形式,如类名Order,对应的表名为orders;若类名包含多个大写单词,则应在单词之间使用下划线划分表名,如类名为TaxAgency,对应的表名为taxagencies。rails中将模型类的对象对应于表中的行,对象的属性对应于表中的字段。例:Sql代码createtable users( id int auto_increment primary key, username varchar(20), password varchar(20));在mo
阅读全文
摘要:1、Rails的国际化根据特定的locale信息,提取相应的内容通过config/environment.rb,指定应用的转换文件 config.i18n.load_path +=Dir[Rails.root.join('my', 'locales', '*.{rb,yml}')] #指定搜索的文件类型 config.i18n.default_locale =:zh #指定默认的文件在config/locales中创建zh文件,提供转换的方式2、validates用于校验validates_presence_of 确认属性值不为nil也不为空va
阅读全文
摘要:strip_tags(html)Strips all HTML tags from the html, including comments. This usesthe html-scanner tokenizer and so its HTML parsing ability is limited bythat of html-scanner.Examples strip_tags("Strip these tags!") # => Strip these tags! strip_tags("Bold no more! See more here...&q
阅读全文
摘要:一般来说,通常使用input的field都会做一些filter的动作,避免被不怀好意之徒塞一些危险的HTML code(script等)进去搞破坏。在ROR中,我们在前面加一个h()(一般不用括号?不容易看到?)即可,h在ROR中起什么作用呢?他是html_escape的alias(别名),他会将所有的""变成<;,>,比如:js 代码 会变成: <script>alert('a');</script>这样就完全做不了乱了。因为所有的tag都被搞掉了。这样太严格了,有时候我们需要
阅读全文
摘要:image_tag(source, options={}) LinkReturns an HTML image tag for thesource. The source can be a full path or a file.OptionsYou can add HTML attributes using theoptions. The options supports three additionalkeys for convenience and conformance::alt - If no alt text is given, the file name part of thes
阅读全文
摘要:render 先上点搜集的常用方式[ruby] view plaincopyprint?render :action => "long_goal", :layout => "spectacular" render :partial => "person", :locals => { :name => "david" } render :template => "weblog/show", :locals => {:customer => Custo
阅读全文
摘要:x.指定端口启动rails项目ruby script/server webrick -p 3000------------------------------------------------- 0.创建一个项目 rials demoshop ------------------------------------------------- 1.用脚手架创建产品(控制 模型 显示 数据) script/generate scaffold product title:string description:text image_url:string -----------------------
阅读全文
摘要:自己很初级,初级的不能再初级,所以初次接触rails的时候,对于里面的create,new,build等方法不是很了解,用的很混乱,导致经常出现不必要的bug,很苦恼,决定,总结一下,结合网上已有资源,深入理解下 向数据库插记录时经常会用到new, build, create。这三个方法很容易混淆 save:rails中的save其实是create_or_update,新建或修改记录!不一定是新建,切记 new :只是在内存中新建一个对象,操作数据库要调用save方法。 create = new + 执行sql。 build:与new基本相同,多用于一对多情况下。还有一个不同请看使用示例 ..
阅读全文
摘要:一、开始ActiveAdmin Active Admin是一个发布在RAILS3中使用的Gem。 1、我们为了快速开始我们对Active Admin的了解,我们首先安装它:在你GemFile中添加gem 'activeadmin'2、更新你的Gembundle install3、运行installerrails generate active_admin:install4、安装的installer会创建一个initializer,这个initializer采用Active Admin默认的配置,把所有需要的配置都写进一个文件夹app/admin里面。同时,这个时候会显示相关的配
阅读全文
摘要:mongodb与mysql命令对比传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。MySQLMongoDB说明mysqldmongod服务器守护进程mysqlmongo客户端工具mysqldumpmongodump逻辑备份工具mysqlmongorestore逻辑恢复工具db.repairDatabase()修复数据库mysql
阅读全文

浙公网安备 33010602011771号