听着《Traveling Light 》继续我们的学习。这次我们用命令行执行,打开cmd,改变目录到RuBymineProjects下
1.新建rails工程
rails new Demo6 -d=mysql
这句命令意思是新建一个名称为Demo6的rails工程,并且使用mysql数据库。然后你会看到好多create语句和using语句。。。
2.配置devise
修改Gemfile文件(Gemfile文件在Demo6的目录下),添加一句:
gem 'devise' #devise是一个gem包
3.配置数据库文件
在mysql中新建数据库demo6_development(也可以使用命令 rake db:create 创建数据库),配置config/database.yml文件,添加自己的密码(当然这里也可以不用自动生成的数据库名,重新定义数据库名称也是可以的)。
development: adapter: mysql2 encoding: utf8 database: Demo6_development pool: 5 username: root password: root host: localhost
4,执行命令bundle install
bundle install
这个命令是安装Gemfile文件中需要的插件(刚加了一个devise插件)。devise是一个开源的工程,主要用于用户的注册、登录、找回密码、session等等。所谓“不要重复制造轮子”,既然有好的工程,我们就拿来用,直接在Gemfile中作为gem包引入,方便之极。
5.配置devise,建立devise档案
rails g devise:install
结果是创建了两个文件。
D:\Tools\Ruby\RubymineProjects\Demo6>rails g devise:install create config/initializers/devise.rb create config/locales/devise.en.yml
在这里如果报找不到mysql2.so的错误是因为你的mysqllib.dll的引入路径不对,记得一定要把mysqllib.dll拷贝到ruby的bin路径下。
6.使用devise创建user model:
rails g devise User
发生了什么?
a.在app/models文件夹下产生了一个user.rb,也就是创建了一个user model
b.在db/migrate文件夹下产生了一个migrate文件
c.在config/routes.rb文件中添加了一行 devise_for :users
7.编辑app/models/user.rb文件
class User < ActiveRecord::Base # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, #末尾添加,号 :confirmable, :lockable #添加这一行 end
8.编辑db/migrate/20131211xxxxxx_devise_create_users.rb文件
class DeviseCreateUsers < ActiveRecord::Migration def change create_table(:users) do |t| ## Database authenticatable t.string :email, :null => false, :default => "" t.string :encrypted_password, :null => false, :default => "" ## Recoverable t.string :reset_password_token t.datetime :reset_password_sent_at ## Rememberable t.datetime :remember_created_at ## Trackable t.integer :sign_in_count, :default => 0, :null => false t.datetime :current_sign_in_at t.datetime :last_sign_in_at t.string :current_sign_in_ip t.string :last_sign_in_ip #打开下面的注释 ## Confirmable t.string :confirmation_token t.datetime :confirmed_at t.datetime :confirmation_sent_at t.string :unconfirmed_email # Only if using reconfirmable #打开下面的注释 ## Lockable t.integer :failed_attempts, :default => 0, :null => false # Only if lock strategy is :failed_attempts t.string :unlock_token # Only if unlock strategy is :email or :both t.datetime :locked_at t.timestamps end add_index :users, :email, :unique => true add_index :users, :reset_password_token, :unique => true #打开以下注释 add_index :users, :confirmation_token, :unique => true add_index :users, :unlock_token, :unique => true end end
其实第7,8步没什么必要,不做也可以,这两个步骤就是在数据库生成表示多生成几个字段,用来记录信息用的。
9.生成数据表:
在rubyMine中找到db/migrate/20131211xxxxxx_devise_create_users.rb,右键选在create "db:migrate",点击OK,点击运行(这里上篇文章说过了),这是控制台输出
D:\Tools\Ruby\RailsInstaller\Ruby2.0.0\bin\ruby.exe -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) D:\Tools\Ruby\RubymineProjects\Demo6\bin\rake db:migrate == DeviseCreateUsers: migrating ============================================== -- create_table(:users) -> 0.1700s -- add_index(:users, :email, {:unique=>true}) -> 0.1530s -- add_index(:users, :reset_password_token, {:unique=>true}) -> 0.1290s -- add_index(:users, :confirmation_token, {:unique=>true}) -> 0.1410s -- add_index(:users, :unlock_token, {:unique=>true}) -> 0.0970s == DeviseCreateUsers: migrated (0.6900s) ===================================== Process finished with exit code 0
这一步也可以直接使用命令 rake db:migrate 完成数据库迁移工作。
10.配置邮件服务器,编辑config/initializers/devise.rb
# ==> Mailer Configuration # Configure the e-mail address which will be shown in Devise::Mailer, # note that it will be overwritten if you use your own mailer class # with default "from" parameter. config.mailer_sender = "xxxxx@126.com" #换成你的邮箱,最好不要是gmail
这步就是设置你的转发邮件的地址,其实所有用户的注册的验证信息都是通过这个邮箱发出去的。记得这个邮箱是和下面的一步相关联的。
11.编辑config/environments/development.rb
# Don't care if the mailer can't send config.action_mailer.raise_delivery_errors = true #此处改为true #添加以下内容 config.action_mailer.default_url_options = { :host => "localhost:3000" } #刚才devise的提示中提到这一句 config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "smtp.126.com", :port => 25, :domain => "126.com", :authentication => :login, :user_name => "xxxxx@126.com", #你的邮箱 :password => "xxxxxxxxxxx" #你的密码 }
这里要说一下,现在用的是126的邮箱,所以如果你想用其他的邮箱进行邮件的发送,那么就需要重新配置这些信息了。
12.其它配置
a.新建一个home controller
rails g controller home index
生成信息
D:\Tools\Ruby\RubymineProjects\Demo6>rails g controller home index create app/controllers/home_controller.rb route get "home/index" invoke erb create app/views/home create app/views/home/index.html.erb invoke test_unit create test/controllers/home_controller_test.rb invoke helper create app/helpers/home_helper.rb invoke test_unit create test/helpers/home_helper_test.rb invoke assets invoke coffee create app/assets/javascripts/home.js.coffee invoke scss create app/assets/stylesheets/home.css.scss
生成home的controller和view就是要你访问home的,我们在访问home的controller前面加了一个过滤器,必须先登录才能访问home,简单的说,现在就是建你的项目了,前面都是为了登录验证的。
b.删除public目录下的index.html文件,修改config/routes.rb文件,添加一句
root :to => "home#index"
c.编辑app/controllers/home_controller.rb文件
class HomeController < ApplicationController before_filter :authenticate_user! #添加这一句 def index end end
这是防止非法用户的访问,首先要验证用户的合法性。
d.编辑app/views/layouts/application.html.erb文件,提示flash信息
<!DOCTYPE html> <html> <head> <title>Demo6</title> <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %> <%= javascript_include_tag "application", "data-turbolinks-track" => true %> <%= csrf_meta_tags %> </head> <body> #添加以下两句 <p class="notice"><%= notice %></p> <p class="alert"><%= alert %></p> <%= yield %> </body> </html>
13.启动程序,访问http://localhost:3000
我没有账户登录怎么办?点击sign_up注册账户
填写email、密码,点击“sign up ”,不出意外的话去注册邮箱收取确认邮件吧!
可是。可是,他就是出意外了,去我的126邮箱看看,把我的邮件当成垃圾邮件了,不给转发
没法,注册时不行了,那咱就试试修改密码,看会不会发邮件,点击Forgot your password?
填上自己的邮箱,就会发现收到邮件了。
恩,好了,虽说有点遗憾,不过没关系,谁让他把咱当成破坏分子了呢,就到这哈,下个目标:
探索devise的单点登录以及第三方登录功能
使用cancan进行权限的控制,将权限存储在数据库中
点击这里下载源码: Demo6源码
相关推荐
Ruby on Rails 4 Tutorial 是一本深受开发者欢迎的书籍,它详细介绍了如何使用Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的开源框架,以其“约定优于配置”(Convention over ...
Ruby on Rails4 api.chm ruby on rails 4 最新api chm版本,方便大家阅览!
《Ruby on Rails Tutorial》中文版(原书第2版,涵盖 Rails 4) Ruby 是一门很美的计算机语言,其设计原则就是“让编程人员快乐”。David Heinemeier Hansson 就是看重了这一点,才在开发 Rails 框架时选择了 Ruby...
### Ruby on Rails 101:深入理解与实践 #### 引言 《Ruby on Rails 101》是一本介绍Ruby on Rails(简称RoR或ROR)的基础书籍,旨在为初学者提供一个全面而深入的学习框架。本书由Peter Marklund编写,包含了五天...
Ruby on Rails,简称Rails,是基于Ruby编程语言的一个开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可读性。Rails以其“约定优于配置”(Convention over Configuration)...
Ruby on Rails是一款基于Ruby语言的开源Web开发框架,它遵循MVC(模型-视图-控制器)架构模式,简化了Web应用的开发流程。在Linux环境下安装Ruby on Rails需要一系列的依赖包和步骤,本资源包提供了所需的所有组件,...
railStrap, RailStrap是一个 HTML5 Ruby on Rails 4 ruby 2.0.0 Bootstrap RailStrap v4演示工具RailStrap是使用 HTML5 Boilerplate 。Twitter Bootstrap 3 。Ruby on Rails ( 4.0.0 ) 设计( 认证) 和 ruby 2.0.0的...
《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...
4. **ActiveRecord**:这是Rails中的ORM(对象关系映射)库,它允许开发者用Ruby代码操作数据库,无需编写SQL。 5. **Scaffolding**:Rails的快速开发工具,能自动生成CRUD(创建、读取、更新、删除)操作的模型、...
### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...
《Ruby on Rails for Dummies》是一本专门为初学者设计的Ruby on Rails教程,它旨在帮助新手快速理解并掌握这个强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言构建的一个开源Web应用程序框架,它...
Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习...
《Ruby on Rails入门权威经典》是一本专门为初学者设计的指南,旨在帮助读者全面掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言的开源框架,以其“DRY(Don't Repeat ...
Ruby on Rails,简称Rails,是由David Heinemeier Hansson基于Ruby语言开发的一个开源Web应用程序框架。这个框架遵循“约定优于配置”(Convention over Configuration)的原则,致力于简化Web应用的开发流程,提高...
Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在提升开发效率和代码的可读性。Rails以其“约定优于配置”的设计理念,以及“DRY(Don't Repeat ...
Ruby on Rails,简称Rails,是基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在使开发过程更加简洁高效。这个“ruby on rails 教程源码”很可能是为了辅助学习者深入理解Rails的...
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。
Ruby On Rails 框架自它提出之日起就受到广泛关注,在“不要重复自己”,“约定优于配置”等思想的指导下,Rails 带给 Web 开发者的是极高的开发效率。 ActiveRecord 的灵活让你再也不用配置繁琐的 Hibernate 即可...