前端做視頻直播網(wǎng)站百度競價(jià)排名怎么靠前
在構(gòu)建了Ruby的Web服務(wù)器后,第三步就可以去掉框架的官方頁面,設(shè)置自己的網(wǎng)頁初始頁了。
Linux系統(tǒng)安裝Ruby語言-CSDN博客?、在Ubuntu中創(chuàng)建Ruby on Rails項(xiàng)目并搭建數(shù)據(jù)庫-CSDN博客、
Ruby語言建立Web服務(wù)器-CSDN博客
了解Ruby onRails項(xiàng)目中的主要文件夾
Ruby?on Rails項(xiàng)目的Web網(wǎng)頁視圖文件為.erb文件,編寫方法和HTML文件很相似(PHP也差不多),.erb文件通常放在? \項(xiàng)目文件夾\app\views\posts?文件夾里,Ruby on Rails的Post項(xiàng)目中主要文件夾和作用如下:
-
app文件夾:這是項(xiàng)目的核心部分,包含了應(yīng)用的大部分代碼。
- controllers:存放驅(qū)動(dòng)業(yè)務(wù)邏輯的控制器文件。這些文件定義了應(yīng)用程序中不同部分的行為和響應(yīng)。
- helpers:存放視圖輔助類,包含一些常用的代碼段,用于在視圖中簡化復(fù)雜的輸出邏輯。
- models:存放數(shù)據(jù)模型文件,定義了數(shù)據(jù)描述結(jié)構(gòu)、驗(yàn)證和完整性規(guī)則等。這些模型通常與數(shù)據(jù)庫表相對應(yīng)。
- views:存放生成HTML的模板文件,也可以存放CSS和圖片。這些文件負(fù)責(zé)應(yīng)用的用戶界面顯示。
-
config文件夾:存放與服務(wù)器、數(shù)據(jù)庫或其他依賴相關(guān)的配置文件。
- database.yml:用于配置Ruby程序和數(shù)據(jù)庫的連接。
- routes.rb:定義了應(yīng)用程序的路由設(shè)置,指定如何將進(jìn)來的請求轉(zhuǎn)發(fā)到相應(yīng)的控制器和動(dòng)作。
-
db文件夾:主要用于存儲(chǔ)開發(fā)人員編寫的數(shù)據(jù)庫遷移文件和模式文件,這些文件用于管理數(shù)據(jù)庫的結(jié)構(gòu)和版本。
-
doc文件夾:存放Rails應(yīng)用的文檔,包括自動(dòng)生成的rdoc文檔和其他相關(guān)文檔。
-
lib文件夾:存放應(yīng)用程序運(yùn)行過程中所需要的類庫文件,這些類庫不屬于控制器、視圖和輔助類。
-
log文件夾:用于存放程序運(yùn)行期間產(chǎn)生的日志文件,包括development.log、test.log和production.log等,這些文件記錄了應(yīng)用程序的運(yùn)行信息和錯(cuò)誤。
-
public文件夾:存放Rails應(yīng)用的靜態(tài)資源,如圖片、JavaScript腳本、CSS樣式等。這些資源可以直接通過Web服務(wù)器訪問。
-
script文件夾:存放一些有用的腳本文件,用于啟動(dòng)和生成代碼等操作。
-
test文件夾:用于存放單元測試和集成測試的文件,這些文件用于驗(yàn)證應(yīng)用程序的功能和性能。
-
vendor文件夾:存放一些程序依賴的外部類庫和插件,這些類庫可以被自動(dòng)加載。
創(chuàng)建網(wǎng)頁初始頁面
運(yùn)行前首先找到posts文件夾,里面存放了允許開發(fā)者在HTML結(jié)構(gòu)中嵌入Ruby代碼的.erb
文件,Ruby代碼通常被包含在<% %>
標(biāo)簽中,用于執(zhí)行邏輯操作,而<%= %>
標(biāo)簽則用于輸出Ruby表達(dá)式的值到HTML中。
可以先簡單修改 index.html.erb?文件內(nèi)容如下:
<!DOCTYPE html>
<html lang="zh">
<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>happy gay</title> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; background-color: #f2f2f2; } .container { max-width: 960px; margin: 0 auto; padding: 20px; } h1 { color: #333; text-align: center; } p { color: #666; line-height: 1.6; } </style>
</head>
<body> <div class="container"> <h1>OH yeah!</h1> <p>這是第一個(gè)Ruby頁面</p> <p>GGBoys!!!!</p> </div>
</body>
</html>
?修改路由設(shè)置文件
routes.rb文件使用一種DSL(領(lǐng)域特定語言)來描述應(yīng)用中的路由結(jié)構(gòu),定義應(yīng)用程序中所有路由。
在 config/routes.rb?文件中修改路由設(shè)置,指向posts文件夾:
Rails.application.routes.draw doresources :postsroot to: 'posts#index' # 應(yīng)用程序的根URL路由
end
原版如下,上述代碼是我修改了的:
Rails.application.routes.draw doresources :postsGET /posts => posts#index GET /posts/new => posts#new POST /posts => posts#create GET /posts/:id => posts#show GET /posts/:id/edit => posts#edit PATCH/PUT /posts/:id => posts#update DELETE /posts/:id => posts#destroy
end
修改控制器文件
在Ruby on Rails中,PostsController
?是一個(gè)控制器類,它處理與Post
模型相關(guān)的請求。控制器是MVC(Model-View-Controller)架構(gòu)中的“C”部分,負(fù)責(zé)接收用戶請求,處理業(yè)務(wù)邏輯,并準(zhǔn)備數(shù)據(jù)以供視圖(View)使用。
@posts = Post.all
?這行代碼會(huì)查詢數(shù)據(jù)庫,獲取所有的Post
記錄,并將它們存儲(chǔ)在實(shí)例變量@posts
中,espond_to
塊允許控制器根據(jù)不同的請求格式返回不同的響應(yīng),如果請求的格式是HTML(通常是瀏覽器請求),Rails會(huì)默認(rèn)渲染與index
方法同名的視圖模板,即app/views/posts/index.html.erb
。這個(gè)視圖模板會(huì)使用@posts
變量來動(dòng)態(tài)生成HTML內(nèi)容,如果請求的格式是JSON(常見于API請求),Rails會(huì)返回一個(gè)包含所有帖子數(shù)據(jù)的JSON響應(yīng)。這里,render json: @posts
會(huì)將@posts
數(shù)組轉(zhuǎn)換為JSON格式,并作為響應(yīng)體返回。
在 /app/controllers/posts_controller.rb?文件中添加一個(gè)index
方法來渲染index.html.erb
視圖
class PostsController < ApplicationController# GET /postsdef index@posts = Post.allrespond_to do |format|format.html # index.html.erbformat.json { render json: @posts }endend
end
運(yùn)行文件
rails server
運(yùn)行成功:?