04. rails入门学习 创建控制器
学习视频
https://www.bilibili.com/video/BV1RJ411W7N3?t=49&p=7
一. 启动rails
启动
cd circles/ #到circles的项目根目录里 以下项目名称为 circles
rails s -p 3001 #如果不写端口,默认是3000
rails s -b 0.0.0.0 #-b 开放ip,外网可访问
启动后不要关闭命令行窗口,不然服务就挂了
访问页面
localhost:3001

二. 创建控制器welcome 和 index页面
如果创始的数据模型是对应一张表,那么要使用复数的形式
例如给users表创建一个控制器
rails g controller users
新打开一个命令行,在命令行里输入
rails g controller welcome index
例子haima@haima-PC:/media/haima/34E401CC64DD0E28/site/go/src/ruby/circles$ rails g controller welcome index
Running via Spring preloader in process 26338
create app/controllers/welcome_controller.rb
route get 'welcome/index'
invoke erb
create app/views/welcome
create app/views/welcome/index.html.erb
invoke test_unit
create test/controllers/welcome_controller_test.rb
invoke helper
create app/helpers/welcome_helper.rb
invoke test_unit
invoke assets
invoke scss
create app/assets/stylesheets/welcome.scss
自动创建了
app/controllers/welcome_controller.rb和app/views/welcome/index.html.erbwelcome_controller.rb
class WelcomeController < ApplicationController
def index
end
end
index.html.erb
<h1>Welcome#index</h1>
<p>Find me in app/views/welcome/index.html.erb</p>
添加路由
config/routes.rb
Rails.application.routes.draw do
get 'welcome/index' #添加路由
resource :user
get 'users/test1'
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end
浏览器访问
http://127.0.0.1:3001/welcome/index返回下面的内容成功.

安装bootstrap
参考:
https://github.com/twbs/bootstrap-sass
https://github.com/rails/jquery-ujs
修改
GemfileGemfile里添加
gem 'bootstrap-sass', '~> 3.4.1'
gem 'sassc-rails', '>= 2.1.0'
gem 'jquery-rails'
命令行执行
bundle install下面可以看到已经安装成功

修改css
a.
app/assets/stylesheets/application.css改为app/assets/stylesheets/application.scssb.
application.scss加入下面的引用@import "bootstrap-sprockets";
@import "bootstrap";
修改js
app/assets/javascripts/application.js里添加
//= require jquery
//= require jquery_ujs
修改application.html.erb

删除文件
app/views/layouts/application.html.erb里的'data-turbolinks-track': 'reload'<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
修改为
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_pack_tag 'application' %>
html里添加代码
修改
app/views/welcome/index.html.erb文件<h1>Welcome#index</h1>
<p>Find me in app/views/welcome/index.html.erb</p> <div class="alert alert-success">
Success
</div>
访问页面
http://127.0.0.1:3001/welcome/index
效果:

至此就ok了
04. rails入门学习 创建控制器的更多相关文章
- 记录21.08.04 — mybatis入门学习
mybatis入门 mybatis简介 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射.MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工 ...
- 04 Python入门学习-流程控制(if else elif while for)
一:流程控制if 语法一: if 条件: code1 code2 code3 ... age = 20 height = 170 weight = 60 sex = 'female' is_beaut ...
- 【原】iOS学习之控制器的创建
本次博客是一篇总结性质的博客,总结的是各种创建控制器的方式以及一些需要注意的操作. 1.通过storyboard创建控制器 正如我上一篇博客中所说,当 Main Interface 没有选定的时候,我 ...
- Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据
Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据 在这一节中,你将新创建一个新的 MoviesController类,并编写代码,实现获取影片数据和使用视图模板在浏览器中展现 ...
- Asp.Net MVC5入门学习系列③
原文:Asp.Net MVC5入门学习系列③ 添加一个视图(View) 接着上篇的入门系列,上面解说添加一个简单Controller(控制器),这里我们简单的在来添加一个View(视图)来展示我们Co ...
- Asp.Net MVC5入门学习系列②
原文:Asp.Net MVC5入门学习系列② 添加一个Controller(控制器) 因为我们用的是Asp.Net MVC,MVC最终还是一套框架,所以我们还是需要遵循它才能玩下去,或者说是更好的利用 ...
- Asp.Net MVC5入门学习系列⑤
原文:Asp.Net MVC5入门学习系列⑤ 检查VS生产的编辑方法和编辑窗体 前面我们一步使用强类型,然后创建Controller(控制器)的时候,VS默认已经给我们把CURD都简单的实现了.这篇的 ...
- Nginx 入门学习教程
昨天听一个前同事说他们公司老大让他去研究下关于Nginx 方面的知识,我想了下Nginx 在如今的开发技术栈中应该会很大可能会用到,所以写篇博文记录总结下官网学习教程吧. 1. 什么是Nginx? 我 ...
- Three入门学习笔记整理
一.官方网站:https://threejs.org 二.关于Three.js 三.开始 四.实例 基本结构 结果 五.概念 坐标系 场景 相机 灯光 3D模型 六.简单动画 七.交互控制 结束 # ...
- Nacos入门学习&实践
文中涉及到了一些模块代码没有给出,我一并上传到github了,可以整个项目clone下来进行调试. 地址:https://github.com/stronglxp/springcloud-test 1 ...
随机推荐
- #组合计数,全排列#洛谷 2518 [HAOI2010]计数
题目 你有一组非零数字(不一定唯一),你可以在其中插入任意个0,这样就可以产生无限个数. 比如说给定{1,2},那么可以生成数字12,21,102,120,201,210,1002,1020,等等. ...
- #树状数组,dp#洛谷 3506 [POI2010]MOT-Monotonicity 2
题目 给出\(N\)个正整数\(a[1..N]\),再给出\(K\)个关系符号(>.<或=)\(s[1..k]\). 选出一个长度为\(L\)的子序列(不要求连续),要求这个子序列的第\( ...
- #线段树分治,背包#CF601E A Museum Robbery
题目 有 \(n\) 个展品正在被展览,每一个展品都有一价值 \(v\) 个和一个混乱度 \(w\) ,现在有 \(m\) 次操作: 1 \(v\) \(w\) :加入一个新的展品,价值为\(v\), ...
- 基于新版宝塔Docker部署在线客服系统过程小记
我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户.对我来说,只要能获得用户的认可,就是我最大的动力. 客服系统开发过程中,最让我意外的是对 TCP/IP 协议的认识.过去一直认 ...
- 面试官:Redis如何实现延迟任务?
延迟任务(Delayed Task)是指在未来的某个时间点,执行相应的任务.也就是说,延迟任务是一种计划任务,它被安排在特定的时间后执行,而不是立即执行. 延迟任务的常见使用场景有以下几个: 定时发送 ...
- HTC vive开发:关于手柄按键对接控制
一.关于左右手柄的对应关系 两个手柄和SteamVR_TrackedObject.EIndex是对应的,一个是EIndex.Device2,另一个是EIndex.Device3(有编号的那个) 在场景 ...
- docker 应用篇————tomcat例子[七]
前言 虽然我干的事情和java不多,但是例子是为了熟悉原理,而不是为了例子而例子的,故而整理一下tomcat的例子. 正文 使用官方示例: 然后运行一下. 没有找到然后进行下载了. 可以看到这里就已经 ...
- Kotlin 使用协程编写高效的并发程序
概念: 轻量级的线程 协程允许我们在单线程模式下模拟多线程编程的效果,代码执行时的挂起与恢复完 全是由编程语言来控制的,和操作系统无关.这种特性使得高并发程序的运行效率得到了极大的提升. 依赖库: d ...
- Vue3.0里为什么要用 Proxy API 替代 defineProperty API
一.Object.defineProperty 定义:Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象 为什么能实现响应式 ...
- h5py这个坑-PyCharm Process finished with exit code -1073741819 (0xC0000005)
在用pytorch和tensorflow做语音合成时,碰到了个很无解的bug, PyCharm 报错 Process finished with exit code -1073741819 (0xC0 ...