`
Nanigac
  • 浏览: 14026 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ROR 之 用户注册实例(二)

阅读更多

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实例"可能指的是在学习或实践中,通过创建一个具体的Rails应用程序来理解和掌握RoR的工作原理和最佳实践。 在Ruby on Rails中,重要知识点包括: 1. **Gemfile与Gemfile.lock**:项目中的Gemfile用于指定项目...

    selenium for RoR 实例

    自动化测试selenium实例,在ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32],Rails 1.2.2环境下测试通过. 工程可直接运行,相关的测试代码在工作目录\public\selenium\tests下

    RoR性能优化经验谈

    RoR(Ruby on Rails)是...每个环节的优化都能显著提升网站的运行效率,使RoR应用能够更好地应对高负载和大规模用户的需求。通过学习和实践这些经验,开发者可以更好地应对RoR性能挑战,创建出更健壮、高效的Web应用。

    ror

    NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696

    ror中文资料

    Ruby中的变量分为四种类型:局部变量(以小写字母或下划线开头)、实例变量(以`@`开头)、类变量(以`@@`开头)和全局变量(以`$`开头)。 2. **控制结构**:Ruby提供了if语句、case语句、循环(如for、while、...

    初探ROR

    **四、ROR的实例应用** 许多知名网站如GitHub、Airbnb、Shopify等都基于Ruby on Rails构建,证明了其在高性能和可扩展性方面的优秀表现。 总结来说,Ruby on Rails提供了一种高效且优雅的Web开发方式,通过强大的...

    神经网络ror resenet模型

    **神经网络Ror ResNet模型详解** 在深度学习领域,ResNet(残差网络)模型是具有里程碑意义的创新,由He et al.在2015年提出。该模型解决了深度神经网络训练中的梯度消失问题,允许构建非常深的网络结构。而“Ror”...

    ROR安装必备所有架包

    首先,`actionpack`是Rails的核心组件之一,它提供了控制器、路由和视图等功能。`actionpack-1.13.5.gem`是ActionPack的一个特定版本,包含了处理HTTP请求、执行控制器动作以及渲染视图所需的所有类和模块。它还负责...

    RoR选题方向—源代码

    此外,标签中提到了其他Web开发技术,如AJAX(异步JavaScript和XML),它用于在不刷新整个页面的情况下更新部分内容,提升用户体验。ASP.NET、C#和J2EE/Java是RoR的主要竞争对手,它们各自有各自的优点和适用场景,...

    RoRBlog 基于RoR的博客系统

    基于RoR的博客系统,代码风格简单清晰,前后太完善,适合初学者。

    敏捷开发第二版ROR必看

    **敏捷开发第二版ROR必看** 在编程领域,Ruby on Rails(简称ROR)是一个深受开发者喜爱的开源Web应用程序框架,它基于Ruby语言,强调简洁、高效的代码编写。"敏捷开发第二版ROR必看"这个主题,指的是对敏捷开发...

    ROR 文件的上传与下载

    ### ROR 文件的上传与下载:深入解析与实践 在Ruby on Rails(简称ROR)框架下,处理文件的上传与下载是一项常见的需求,尤其是在构建包含媒体内容的应用程序时。本文将基于给定的文件信息,详细阐述如何在Rails...

    freemis 基于ror框架的mis

    3. **易用性**:RoR的模板引擎和视图层设计使得FreeMIS的用户界面友好,用户体验良好。 4. **社区支持**:RoR拥有庞大的开发者社区,这意味着FreeMIS可以利用众多开源插件和库,以及丰富的文档和教程资源。 5. **...

    Windows 上搭建 ROR环境

    #### 二、环境准备 在开始搭建前,请确保您的Windows系统已更新至最新版本,并安装了必要的软件和工具。下面将分步骤介绍搭建过程。 #### 三、具体步骤 ##### 1. 安装Ruby - **选择版本**:根据个人需求选择合适的...

    ROR绿色最新环境(2013/3/10)

    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 ...

    FX5U程序实例.zip

    移位指令包括左移(SHL)、右移(SHR)、循环左移(ROL)和循环右移(ROR),在处理二进制数据时非常实用,例如在数据位移、数据加密解密等场景。 4. **实例14** 没有具体描述,但可能是对定时器和计数器的使用,...

    机遇ROR 的图书管理系统

    《机遇ROR的图书管理系统》是一份以Ruby on Rails(简称ROR)技术为核心,旨在构建高效、便捷的图书管理解决方案的学习资料。Ruby on Rails,是基于Ruby编程语言的开源Web应用框架,它遵循MVC(Model-View-...

    RoR 培训课程PPT

    ### RoR培训课程PPT知识点概述 #### 一、课程概览与背景介绍 - **课程性质**:本课程为为期五天的Ruby on Rails(简称RoR)入门级培训,适合初学者快速掌握RoR的基本概念和技术要点。 - **讲师信息**:由Peter ...

    javarebel 用JAVA和ROR一样方便测试

    破解版本的JAR包,放到本地磁盘,ECLIPUS直接用,到JVM设置直接加 -noverify -javaagent:D:\javarebel.jar

Global site tag (gtag.js) - Google Analytics