rails命令

加载开发环境

$ source ~/.rvm/scripts/rvm

新建工程

$ rails new hello_app

安装 gem

$ bundle install

打开服务

$ rails server

查看路由

$ rake routes

资源路由最常用,路由表中写入如下内容,生成该模型全部路由信息

resources :post #post为 model 名

脚手架帮助生成包括模型(数据库表)、控制器、路由等在内的所有初始代码,这里 scffold 是脚手架的意思,注意后面的模型 Post 是单数,其主键 id 自动生成,content 字段设置为 text 类型

$ rails generate scaffold Post content:text

删除命令

$ rails destroy scaffold Post

数据库迁移命令,模型建立后要执行,数据库才有用

$ bundle exec rake db:migrate

一般路由实例,路由表中写入如下代码,表示请求一个路由,转到一个动作

get 'posts/:id', :to => 'posts#show'

html 前端代码中超链接,使用了 link_to 的方法

<%= link_to 'id为1的微博',{:controller => 'posts',:action => 'show',:id => 1}>

命名路由,把上面的路由修改为如下,前端代码中可以直接使用命名路由

get 'posts/:id', :to => 'posts#show',:as => 'show_post'

在前端代码中可以修改为如下代码,可以生成相同效果超链接,1 是参数

<%= link_to 'id为1的微博',show_post_path(1)>

资源路由拓展,在控制器中要添加相应的方法,这里是 recent 方法,在 posts 的视图下面也要添加 recent.html.erb 文件,执行那个方法时,会自动转到这个页面

resources :posts do 
    collection do       #集合路由
        get 'recent'
    end
    member do           #成员路由
        get 'recent'
    end
end

单独创建模型

$ rails generate model user userName:string email:string

在生成的 model 文件 user.rb 中添加存在性、长度、格式、唯一性(不区分大小写)验证

EMAIL = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/ #邮箱正则表达式
validates :email,presence:true,length:{maximum:255},format:{with:EMAIL},uniqueness:{case_sensitive:false}

rails 控制台,可以用其操作数据库

$ rails console

修改模型,这里以添加字段为例,先输入如下命令

$ rails generate migration change_user_add_password

再在生成的脚本文件 db/migrate/20180127021214_change_user_add_password.rb 中的函数中添加,字段就添加成功了

add_column :users,:password_digest,:string

再在模型文件中添加一个安全验证函数(注意这里把 Gemfile 中的 gem ‘bcrypt’ 注释去掉)和其他验证

has_secure_password     #安全验证函数
validates :password,length:{minmum:6}

页面重定向

redirect_to @user #重定向到 user 用户的资料页(show方法)

使用 session 保持用户状态,实现退出用户登录登出等会话功能,这里为 session 创建了一个 new 方法及视图

$ rails generate controller Sessions new

关联两个模型,在两个模型中写下如下代码

belongs_to :user #一个 post 属于一个 user
has_many :posts  #一个 user 有许多 posts

注意上面之前在 posts 模型中添加了一个字段 user_id 作为自动关联用的字段

html.reb 表示嵌入式 ruby 语言,其中 <%= %> (要在页面上显示出来)或<% %> (不显示出来,主要是判断语句)写 ruby 语言,rails 会自动解析其中的 ruby 代码

rails 会默认将控制器动作中出现的所有变量给前端显示

常用前端内置方法 link_to (超链接)与 form_for (表单)

link_to "链接显示文字" options = {},html_options = {} #如何不写请求提交的方法,默认用 get 方法

rails 前端采用局部视图,底层视图在 layouts 文件夹中

只要你有一个控制器,就会有一个 helpers 文件对应,在 application_controller.rb 中包含一下该文件,helpers 文件中的方法就可以在所有控制器文件中使用,使用这种方式可以实现用户强制登录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值