• 首探:Ruby on Rails 简单了解


    一. 安装

    Ruby安装:https://ruby-china.org/wiki/rvm-guide

    注:安装了RVM和Gem后

    安装rails:
    gem install rails -v 5.1.4    # 指定版本安装

    二. 创建Rails项目

    rails _5.1.4_ new hello_app    # 创建指定rails版本的项目

    1.项目目录

    2.关于目录文件的解释

    3.关于项目中的Gemfile中的依赖包的版本介绍

    (1).如果没在 gem 指令中指定版本号,Bundler 会自动安装最新版。例如:

    (2).始终安装最新版(>=)。例如:

    (3).只安装最后一个数字变化的版本(~>)。例如:

    注:Ruby对版本控制稍微有些严苛,和Python有很大的区别,版本不同就有可能导致程序报错

    4.安装和更新这些Gem

    bundle install    # 安装,一般你创建项目的时候就已经给你安装了
    bundle update    # 更新

    5.运行Rails项目

    rails server

    三. Rails的架构模式MVC

    在初期阶段,概览一下 Rails 应用的工作方式多少会有些帮助。你可能已经注意到了, 在 Rails 应用的标准文件结构中有一个名为 app/ 的目录, 其中有三个子目录: models, views 和 con-trollers 。这表明 Rails 采用了“模型-视图-控制器”(简称 MVC)架构模式。这种模式把应用中的数据(例如用户信息)与显示数据的代码分开,这是图形用户界面(Graphical User Interface,简称 GUI)常用的架构方式。

    注:和Python的Django框架的区别就是Django的架构模式为:MTV

    四. 万物之本源 --- hello world!

    进入文件:hello_app/app/controllers/application_controller.rb

    class ApplicationController < ActionController::Base
    
      protect_from_forgery with: :exception
    
      def hello
        render html: "hello, world"
      end
    
    end

    进入文件:hello_app/config/routes.rb

    Rails.application.routes.draw do
      # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
    
      root "application#hello"
    
    end

    然后:

    注:hello, world终于出来了,庆祝吧!!!

    五. 整个测试小项目

    1.先整个数据库postgresql

    在Gemfile文件中加点东西

    group :production do
      gem 'pg', '0.20.0'
    end

    2.运行bundle

    bundle install --without production

    注:安装 gem 时要指定 --without production 选项,不安装生产环境使用的 gem

    3.想想库中数据模型

    (1).来咱先生成Users的资源

    rails generate scaffold User name:string email:string

    注:通过脚手架生成CURD的代码,劝你先别细看(毕竟也看不懂,对吧)。解释一点:把 scaffold 传给 rails generate 命令就可以使用 Rails 的脚手架了。传给 scaffold 的参数是资源名的单数形式(这里是 User ), 后面可以再跟着一些可选参数,指定数据模型中的字段

    注:在执行的命令中加入了 name:string 和 email:string ,这样就可以实现图中的 User 模型了。注意, 没必要指定 id 字段, Rails 会自动创建并将其设为表的主键(primary key)

    (2).接下来就是迁移数据库了

    rails db:migrate

    注:搞定了~..~

    注意,注意:在 Rails 5 之前的版本中, db:migrate 命令使用 rake 执行,而不是 rails 。因此,如果你还要维护以前的应用,一定要知道如何使用 Rake

    (3).User的访问路径

    注:自己去瞧瞧吧

    (4).在创建第二个模型之前,试试MVC

    ①. 进入文件:hello_app/config/routes.rb

    会发现文件内多了行东西

    注:Rails 路由,为 Users 资源定义了一条规则(:users 这个写法看着很奇怪,它是一个符号, 后边在细说)

    既然都到这了就把跟路由改为users的索引路由,也就是users列表

    ②. 进入文件:hello_app/app/controllers/users_controller.rb

    注:class UsersController < ApplicationController 这种写法,在 Ruby 中这表示类继承。

    瞧一瞧脚手架给你生成的代码,是不是很开心

    ③.进入文件:hello_app/app/views/users

    注:看看脚手架给你生成的模板,看完就更开心了呐

    ④.脚手架生成代码不足的不足之处

    • 没有验证数据
        没有验证数据。 User 模型会接受空名字和无效的电子邮件地址,而不报错。
    • 没有验证身份
        没有验证身份。没实现登录和退出功能,随意一个用户都可以进行任何操作。
    • 没有测试
        没有测试。也不是完全没有,脚手架会生成一些基本的测试,不过很粗糙也不灵便,没有针对数据验证和身份验证的测试,更别说针对其他功能的测试了。
    • 没样式,没布局
        没样式,没布局。没有共用的样式和网站导航。
    • 没真正理解
        是不是很真实。

    (5).生成 Microposts 资源

    # 老样子
    rails generate scaffold Micropost content:text user_id:integer

    注:剩下的数据库迁移啥的,自己往上翻,太麻烦不写了

    (6).Microposts 生成的路由

    注:自己试试,然后找找脚手架给创建的其他的文件,别说找不到,上面写着呐

    。。。

    先到这,明天继续

  • 相关阅读:
    sql server中的孤立用户
    BWOA开源项目引子
    海边拾贝
    ABAP syntax_error 错误: form send_cmplx_data_015 does not exist.
    一点总结,手机应用开发前景
    这个周末发生了很多事
    品味单反
    远图(FarMap)使用
    And和手机随想
    远图(FarMap)花絮
  • 原文地址:https://www.cnblogs.com/rixian/p/11650397.html
Copyright © 2020-2023  润新知