# 模型-视图-控制器(MVC)、
Rails应用程序的文件结构里面有一个文件夹叫做app/,其中有三个子文件夹:models, views和controllers。
MVC说明:在Rails交互中,浏览器发送一个请求(request),网络服务器收到请求将其传送到Rails的控制器,然后决定下一步做什么。某些情况下,控制器会立即渲染视图(view)模板,生成HTML,然后将结果发送回浏览器。对于动态网站来说,控制器会和模型(model)交互。模型是一个Ruby对象,表示网站中的一个元素(例如一个用户),并且负责和数据库通信。调用模型后,控制器再渲染视图并将生成的HTML代码返回给浏览器
Hello, Rails举例:
一、route文件: 路径:
/home/caopu/blog/config
文件名:routes.rb 代码:
Rails.application.routes.draw do
#resources :articles
get ‘sessions/new‘
post ‘sessions/create‘
get ‘applicants/new‘
post ‘applicants/create‘
resources :articles do
resources :comments
end
get ‘welcome/index‘
root ‘welcome#index‘
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
二、controller文件: 路径:
/home/caopu/blog/app/controllers
文件名:welcome_controller.rb 代码:
class WelcomeController < ApplicationController
def index
end
end
三、view文件: 路径:
/home/caopu/blog/app/views/welcome
文件名:index.html.erb 代码:
<h1>Hello, Rails!</h1>
<%= link_to ‘My Blog‘, controller: ‘articles‘ %>
运行: 在地址栏输入 http://localhost:3000/welcome/index 回车之后我们就能看到“Hello,Rails!”显示在页面上。 代码说明: 我们在地址栏输入“http://localhost:3000/welcome/index”之后, route下的文件接收到”welcome/index“, 将路径首先指向controller下面的welcome打头的“welcome_controller.rb”文件 调用里面的方法,执行一些处理。 然后将数据放在 views文件夹下面的welcome文件夹下的index打头的index.html.erb文件里面。 利用这个页面带着处理完的数据显示到画面上
# 表现层状态转化(REST)
REST是一种架构方式,用来开发分布式,基于网络的系统和程序。Rails程序中,REST意味着大多数的组件(如用户和微博)会被模型化,变成资源(resource),可以被创建(create),读取(read),更新(update)和删除(delete),这些操作会与关系型数据库中的CRUD操作和HTTP请求方法(POST,GET,PATCH和DELETE)对应起来。
# controller类里面的对象.all方法:
class UsersController < ApplicationController
def index
@users = User.all
end
end
解释:它要求User模型从数据库中读取所有的用户,然后将结果赋值给@User变量。
简单来说就是通过调用Rails中叫做Active Record的库(如下代码),返回所有用户。
文件位置:app/models/user.rb
User模型中的代码:
class User < ActiveRecord::Base
end