ROR 之 用户注册实例(一) ...
Rails复数规则
Rails约定ControllerName(URL)为复数,TableName为复数。
从感性认识来看,Table复数规则即前节ruby script/generate scaffold user创建users表的现象。
那么ROR是怎么实现Table复数规则的?
script/generate指向%RegisterDemo%\script\generate,
在generate中require 'commands/generate'指向%rails-2.2.2%\lib\commands\generate.rb。
require "#{RAILS_ROOT}/config/environment"
require 'rails_generator'
require 'rails_generator/scripts/generate'
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
Rails::Generator::Scripts::Generate.new.run(ARGV)
第1行 require %RegisterDemo% \config\environment.rb。
第5行帮助命令格式是ruby script/generate --help/-h。在命令行中执行看回显。
第2,3行 require 指向 %rails-2.2.2%\lib\rails_generator\generators\applications和components。
这两子目录下边的每一个Folder都是Installed Generator以及Generator Template。
接下来 Installed Generator中可以看到pluralize,singularize字样的方法,测试一下:
require 'active_support'
puts 'post'.pluralize →posts
puts 'blog'.pluralize →blogs
puts 'shoes'.singularize →shoe
这几个方法决定单复数形式,那么具体实现在哪里?
%activesupport-2.2.2%\lib\active_support\inflections.rb和inflector.rb。
%rails-2.2.2%\lib\rails_generator\base.rb
第232,233行,Check ActiveRecord::Base.pluralize_table_names ,定义了TableName。
%rails-2.2.2%\lib\rails_generator\generators\components\scaffold\scaffold_generator.rb
第24行,定义了ControllerName(URL)。
Ruby script/generate scaffold user都做了些什么?
%RegisterDemo% \db\migrate\yyyymmddhhMMss_create_users.rb建表文件(utc)。
%RegisterDemo% \app\controllers\users_controller.rb,
%RegisterDemo% \app\helpers\users_helper.rb,
%RegisterDemo% \app\models\user.rb。
%RegisterDemo% \app\views\users\index.html.erb,new.html.erb,edit.html.erb,show.html.erb对应L(D)CUR,
%RegisterDemo% \app\views\layouts\users.html.erb。
%RegisterDemo% \config\routes.rb追加map.resources :users。
暂且先列出以上这些。
再次rake db:migrate
此时将读取migrate\yyyymmddhhMMss_create_users.rb,实例CreateUsers类,
更新schema.rb,并将yyyymmddhhMMss写入schema_migrations表。
参考:%active_record%\connection_adapters\abstract\schema_statements.rb
initialize_schema_migrations_table和assume_migrated_upto_version。
Rake Task 一览: Rake -T > C:\rake.txt
接下来一步步完善RegisterDemo(CSS,Ajax,注册验证码,Mail激活等)...
※原创版权所有,转载请Mail:Nanigac.Yin#Gmail.COM。
分享到:
相关推荐
ror实例ror实例ror实例
自动化测试selenium实例,在ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32],Rails 1.2.2环境下测试通过. 工程可直接运行,相关的测试代码在工作目录\public\selenium\tests下
RoR性能优化经验谈,牛人对ror的优化,值得大家阅读
NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696
ror中文资料ror中文资料
ROR 架构介绍及了解
基于RoR的博客系统,代码风格简单清晰,前后太完善,适合初学者。
神经网络ror resenet模型 cifar10准确率89% cifar100准确率72%
10分钟做博客实例。RoR实例。
之前本人在windows 上搭建ROR环境,屡屡受挫,上网查资料、加入ruby on rails的qq群,关注ruby社区等,没有得到一套完整的正确的方法,很多朋友说不要在windows 弄ROR,很费力。的确很费力,后来在朋友的帮助下,...
RoR选题方向—源代码
家蚕Ror2基因的克隆与表达分析,刘伟,陈菲,Ror家族属于受体酪氨酸激酶中的孤儿受体,在进化上非常保守。本研究克隆了家蚕Ror2基因BmRor2的ORF序列,BmRor2基因的ORF为1924 bp,编码638
敏捷开发第二版,06年最佳出版物,学习ROR必看教程。。
ROR环境 Ruby version 1.9.3 (java) RubyGems version 1.8.24 Rack version 1.4 Rails version 3.2.12 JavaScript Runtime therubyrhino (Rhino) Active Record version 3.2.12 Action Pack version 3.2.12 ...
破解版本的JAR包,放到本地磁盘,ECLIPUS直接用,到JVM设置直接加 -noverify -javaagent:D:\javarebel.jar
mysqlDriver4ror.rarmysqlDriver4ror.rarmysqlDriver4ror.rarmysqlDriver4ror.rar
freemis 基于ror框架的mis ruby on rails的一个很好实例
excel lib ror ruby
我自己再开发时的笔记
研究机构注册(ROR)API ROR API允许检索,搜索和过滤在ROR中建立索引的组织。 结果以JSON返回。 单个组织记录由以下JSON结构表示: { "id":"https://ror.org/013cjyk83", "name":"PSL Research University", "email...