在安装完rbenv,ruby,rails的情况下我们开始创建一个项目并且开始解析里面的命令
第一步:创建 rails new TestDemo
第二步:既然是MVC,重点关注
1.app/controllers/
2.app/views/
3.app/model/
4.config/routes.rb
需要熟悉几个文件的位置,需要不停的来回调试
第三步
1.cd TestDemo 【进入文件夹】
2.输入rail server(或者rail s)------【http://localhost:3000】
----在服务器上的话输入
----rail s -b 0.0.0.0---------【主机地址+3000端口,-b是绑定ip的意思】
3.可以登录相应的地址去看看是否有显示
4.接下来创建controller,view 命令:
rails generate controller perple index --skip-routes
解释一下:
当然肯定不只有这2个文件,挑重点的说
----(app/controllers/perple_controller);(app/views/perple/index)
----skip-routes 跳过路由(路由就是www.baidu.com/)那个斜杠后面的都可以路由设置路径
第四步
1.动手编辑
----进入config/routes.rb 中
Rails.application.routes.draw do
root "perple#index"
end
解释一下:
--------看清楚类名不是people,是perple
perple_controller就是perple类,people类中有个方法叫做index,
这个方法名对应这app/views/perple/index.html
这个文件。 如果你创建一个do方法,就可以创建app/views/people/do.html文件 包括一下:
。C口的类名–去掉controller,就是V口文件夹的名字
。C口中的方法–就是V口文件夹下面的HTML文件名
把 people类中的index方法对应的index.html文件当做首页展示
大家可以自己动手去试试,更改Index.html文件
接下来实操一波
请在端口后面添加/perple 观看是否显示
5.添加modle
rails generate model Perple title:string body:text
解释一下:
创建一个model类就是数据库创建类型的模板
数据库名字叫Perples(数据库自动复数)
string类型的title(对应数据库vachar类型)
text类型的body (对应数据库text类型)
在db/migate 中找到创建出来的模板
class CreatePerples < ActiveRecord::Migration[7.0]
def change
create_table :perples do |t|
t.string :title
t.text :body
#t.string:name
t.timestamps
end
end
end
这只是个模板数据库还未生成;你也可以在里面添加新的列名
并且会为我们自动添加 id 主键
t.timestamps 会自动为我们在数据中添加createat:,updateat
2个列名,分别是创建时间,和修改时间
接下来数据库生成迁移
rails db:migrate
加载成功后基础部分就结束了;
部分功能:基础部分接续
1.使用模型与数据库交互
rails console (进入控制台)
ple = Perple.new(title:"first",body:"first message")
pel.save
ple = Perple.new(title:"second",body:"second message")
pel.save
#我们插入2条数据
Perple.all#获取数据库中所有数据
Perple.find(1)#获取数据库中第一条数据
退出:exit
2.显示文章列表
在Perple的index方法中定义一个实例变量
@perple = Perple.all
在index.html中写入
<ul>
<% @perple.each do |ple| %>
<li>
<%=ple.title %>
</li>
<% end %>
</ul>
解释一下%%和%=%
%%表评估封闭的 Ruby 代码(执行代码不输出)
%=%评估封闭的 Ruby 代码,并输出它返回的值(执行代码输出)
我的理解“看成for循环,带等号的就是输出,需要显示返回值的“
3.路由跳转
c口,创建show方法
class PerpleController < ApplicationController
def index
@perple = Perple.all
end
def doSome
end
def show
@showTime = Perple.find(params[:id])
end
end
V口,创建show.html.erb
<h1><%= @showTime.title %></h1>
<p><%= @showTime.body %></p>
routes,路由
Rails.application.routes.draw do
root "perple#index"
get "/perple",to: "perple#doSome"
get "/perple/:id", to: "perple#show"
end
解释下,对应show方法中的params[:id]:—>对应数据库中的Id
------>/:id----->/1 ----->find( params[1])---->select * from perples where id = 1”
跳转到show页面,把返回的数据放在实例@showTime身上。从而显示
你也可以输入个2试试。
循循渐进