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实例"可能指的是在学习或实践中,通过创建一个具体的Rails应用程序来理解和掌握RoR的工作原理和最佳实践。 在Ruby on Rails中,重要知识点包括: 1. **Gemfile与Gemfile.lock**:项目中的Gemfile用于指定项目...
自动化测试selenium实例,在ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32],Rails 1.2.2环境下测试通过. 工程可直接运行,相关的测试代码在工作目录\public\selenium\tests下
RoR(Ruby on Rails)是...每个环节的优化都能显著提升网站的运行效率,使RoR应用能够更好地应对高负载和大规模用户的需求。通过学习和实践这些经验,开发者可以更好地应对RoR性能挑战,创建出更健壮、高效的Web应用。
NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696
Ruby中的变量分为四种类型:局部变量(以小写字母或下划线开头)、实例变量(以`@`开头)、类变量(以`@@`开头)和全局变量(以`$`开头)。 2. **控制结构**:Ruby提供了if语句、case语句、循环(如for、while、...
**四、ROR的实例应用** 许多知名网站如GitHub、Airbnb、Shopify等都基于Ruby on Rails构建,证明了其在高性能和可扩展性方面的优秀表现。 总结来说,Ruby on Rails提供了一种高效且优雅的Web开发方式,通过强大的...
**神经网络Ror ResNet模型详解** 在深度学习领域,ResNet(残差网络)模型是具有里程碑意义的创新,由He et al.在2015年提出。该模型解决了深度神经网络训练中的梯度消失问题,允许构建非常深的网络结构。而“Ror”...
首先,`actionpack`是Rails的核心组件之一,它提供了控制器、路由和视图等功能。`actionpack-1.13.5.gem`是ActionPack的一个特定版本,包含了处理HTTP请求、执行控制器动作以及渲染视图所需的所有类和模块。它还负责...
此外,标签中提到了其他Web开发技术,如AJAX(异步JavaScript和XML),它用于在不刷新整个页面的情况下更新部分内容,提升用户体验。ASP.NET、C#和J2EE/Java是RoR的主要竞争对手,它们各自有各自的优点和适用场景,...
基于RoR的博客系统,代码风格简单清晰,前后太完善,适合初学者。
### ROR 文件的上传与下载:深入解析与实践 在Ruby on Rails(简称ROR)框架下,处理文件的上传与下载是一项常见的需求,尤其是在构建包含媒体内容的应用程序时。本文将基于给定的文件信息,详细阐述如何在Rails...
**敏捷开发第二版ROR必看** 在编程领域,Ruby on Rails(简称ROR)是一个深受开发者喜爱的开源Web应用程序框架,它基于Ruby语言,强调简洁、高效的代码编写。"敏捷开发第二版ROR必看"这个主题,指的是对敏捷开发...
3. **易用性**:RoR的模板引擎和视图层设计使得FreeMIS的用户界面友好,用户体验良好。 4. **社区支持**:RoR拥有庞大的开发者社区,这意味着FreeMIS可以利用众多开源插件和库,以及丰富的文档和教程资源。 5. **...
#### 二、环境准备 在开始搭建前,请确保您的Windows系统已更新至最新版本,并安装了必要的软件和工具。下面将分步骤介绍搭建过程。 #### 三、具体步骤 ##### 1. 安装Ruby - **选择版本**:根据个人需求选择合适的...
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 ...
移位指令包括左移(SHL)、右移(SHR)、循环左移(ROL)和循环右移(ROR),在处理二进制数据时非常实用,例如在数据位移、数据加密解密等场景。 4. **实例14** 没有具体描述,但可能是对定时器和计数器的使用,...
《机遇ROR的图书管理系统》是一份以Ruby on Rails(简称ROR)技术为核心,旨在构建高效、便捷的图书管理解决方案的学习资料。Ruby on Rails,是基于Ruby编程语言的开源Web应用框架,它遵循MVC(Model-View-...
### RoR培训课程PPT知识点概述 #### 一、课程概览与背景介绍 - **课程性质**:本课程为为期五天的Ruby on Rails(简称RoR)入门级培训,适合初学者快速掌握RoR的基本概念和技术要点。 - **讲师信息**:由Peter ...
破解版本的JAR包,放到本地磁盘,ECLIPUS直接用,到JVM设置直接加 -noverify -javaagent:D:\javarebel.jar