Ruby on Rails Post项目设置网站初始界面

在构建了Ruby的Web服务器后,第三步就可以去掉框架的官方页面,设置自己的网页初始页了。

Linux系统安装Ruby语言-CSDN博客 、在Ubuntu中创建Ruby on Rails项目并搭建数据库-CSDN博客、

Ruby语言建立Web服务器-CSDN博客

了解Ruby onRails项目中的主要文件夹

Ruby on Rails项目的Web网页视图文件为.erb文件,编写方法和HTML文件很相似(PHP也差不多),.erb文件通常放在  \项目文件夹\app\views\posts 文件夹里,Ruby on Rails的Post项目中主要文件夹和作用如下:

  1. app文件夹:这是项目的核心部分,包含了应用的大部分代码。

    • controllers:存放驱动业务逻辑的控制器文件。这些文件定义了应用程序中不同部分的行为和响应。
    • helpers:存放视图辅助类,包含一些常用的代码段,用于在视图中简化复杂的输出逻辑。
    • models:存放数据模型文件,定义了数据描述结构、验证和完整性规则等。这些模型通常与数据库表相对应。
    • views:存放生成HTML的模板文件,也可以存放CSS和图片。这些文件负责应用的用户界面显示。
  2. config文件夹:存放与服务器、数据库或其他依赖相关的配置文件。

    • database.yml:用于配置Ruby程序和数据库的连接。
    • routes.rb:定义了应用程序的路由设置,指定如何将进来的请求转发到相应的控制器和动作。
  3. db文件夹:主要用于存储开发人员编写的数据库迁移文件和模式文件,这些文件用于管理数据库的结构和版本。

  4. doc文件夹:存放Rails应用的文档,包括自动生成的rdoc文档和其他相关文档。

  5. lib文件夹:存放应用程序运行过程中所需要的类库文件,这些类库不属于控制器、视图和辅助类。

  6. log文件夹:用于存放程序运行期间产生的日志文件,包括development.log、test.log和production.log等,这些文件记录了应用程序的运行信息和错误。

  7. public文件夹:存放Rails应用的静态资源,如图片、JavaScript脚本、CSS样式等。这些资源可以直接通过Web服务器访问。

  8. script文件夹:存放一些有用的脚本文件,用于启动和生成代码等操作。

  9. test文件夹:用于存放单元测试和集成测试的文件,这些文件用于验证应用程序的功能和性能。

  10. vendor文件夹:存放一些程序依赖的外部类库和插件,这些类库可以被自动加载。

创建网页初始页面

运行前首先找到posts文件夹,里面存放了允许开发者在HTML结构中嵌入Ruby代码的.erb文件,Ruby代码通常被包含在<% %>标签中,用于执行逻辑操作,而<%= %>标签则用于输出Ruby表达式的值到HTML中。

可以先简单修改 index.html.erb 文件内容如下:

<!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>这是第一个Ruby页面</p>  <p>GGBoys!!!!</p>  </div>  
</body>  
</html>

 修改路由设置文件

routes.rb文件使用一种DSL(领域特定语言)来描述应用中的路由结构,定义应用程序中所有路由。

在 config/routes.rb 文件中修改路由设置,指向posts文件夹:

Rails.application.routes.draw doresources :postsroot to: 'posts#index' # 应用程序的根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 是一个控制器类,它处理与Post模型相关的请求。控制器是MVC(Model-View-Controller)架构中的“C”部分,负责接收用户请求,处理业务逻辑,并准备数据以供视图(View)使用。

@posts = Post.all 这行代码会查询数据库,获取所有的Post记录,并将它们存储在实例变量@posts中,espond_to块允许控制器根据不同的请求格式返回不同的响应,如果请求的格式是HTML(通常是浏览器请求),Rails会默认渲染与index方法同名的视图模板,即app/views/posts/index.html.erb。这个视图模板会使用@posts变量来动态生成HTML内容,如果请求的格式是JSON(常见于API请求),Rails会返回一个包含所有帖子数据的JSON响应。这里,render json: @posts会将@posts数组转换为JSON格式,并作为响应体返回。

在 /app/controllers/posts_controller.rb 文件中添加一个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

运行文件

rails server

运行成功: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/31031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OceanBase v4.2 特性解析:支持并发建表,提升OMS导入效率

背景 OceanBase 4.0版本新增了单日志流架构&#xff0c;使得OBServer单机突破了原有的分区数限制&#xff0c;支持更大数量的分区。 很多业务环境为了处理单机数据量过大的问题&#xff0c;通常采取分库分表的方法&#xff0c;这一方法会导致业务需要创建数十万乃至百万级别的…

贪吃蛇——c语言版

文章目录 演示效果实现的基本功能技术要点源代码实现功能GameStart打印欢迎界面和功能介绍绘制地图创建蛇创建食物 GameRun打印提示信息蛇每走一步 GameEnd蛇死亡后继续游戏 演示效果 贪吃蛇1.0演示视频 将终端应用程序改为控制台主机 实现的基本功能 贪吃蛇地图绘制蛇吃食物的…

apple watch上watchOS网络低级别和高级别区别,以及使用tcp/udp或者websocket的限制条件

可以直接看官方文档&#xff1a;TN3135: Low-level networking on watchOS | Apple Developer Documentation 高级网络&#xff1a;包括 URLSession 中的 HTTP 和 HTTPS 支持&#xff0c;以及在此之上的任何代码层。 低层网络&#xff1a;包括网络框架、 NSStream 和任何其他…

第 402 场 LeetCode 周赛题解

A 构成整天的下标对数目 I 计数&#xff1a;遍历 h o u r s hours hours &#xff0c;记录 h o u r s [ i ] % 24 hours[i]\%24 hours[i]%24 的出现次数 class Solution {public:long long countCompleteDayPairs(vector<int>& hours) {vector<int> cnt(24);…

苹果的后来者居上策略:靠隐私保护打脸微软

01.苹果与微软相比更注重用户隐私 我一直是Windows的忠实用户&#xff0c;但微软疯狂地将人工智能融入一切&#xff0c;让我开始觉得应该咬咬牙换成Mac。 自小我几乎只用Windows电脑&#xff0c;所以我对MacOS一直不太适应。虽然Windows 11有其缺点&#xff0c;但总的来说&am…

Pytorch构建vgg16模型

VGG-16 1. 导入工具包 import torch.optim as optim import torch import torch.nn as nn import torch.utils.data import torchvision.transforms as transforms import torchvision.datasets as datasets from torch.utils.data import DataLoader import torch.optim.lr_…

阿里CEO个人投资的智驾公司,走了不一样的路

佑驾创新在去年8月和11月完成两轮融资&#xff0c;在今年5月底递表港交所&#xff0c;目前拿到了29家车企88款车型的量产订单。自动驾驶赛道不缺明星&#xff0c;这些因素本不足以凸显它的差异化。但是在招股书中&#xff0c;一条特殊的发展路线&#xff0c;却让佑驾创新显得不…

DB9母头接口定义485

在通信技术中&#xff0c;DB9接口广泛应用于串行通信&#xff0c;尤其是在RS232和RS485标准中。虽然DB9接口最常见于RS232通信&#xff0c;但通过适当的引脚映射&#xff0c;它也可以用于RS485通信。本文将详细介绍如何定义和使用DB9母头接口进行RS485连接。 DB9母头接口简介 …

②-Ⅱ单细胞学习-组间及样本细胞比例分析(补充)

数据加载 ①单细胞学习-数据读取、降维和分群_subset函数单细胞群-CSDN博客‘ #2024年6月20日 单细胞组间差异分析升级# rm(list = ls()) library(Seurat)#数据加载(在第一步已经处理好的数据) load("scedata1.RData")#这里是经过质控和降维后的单细胞数据 tabl…

蓝牙模块在智能城市构建中的创新应用

随着科技的飞速发展&#xff0c;智能城市的概念已经逐渐从理论走向实践。物联网技术作为智能城市构建的核心驱动力&#xff0c;正在推动着城市基础设施、交通管理、环境监测等领域的深刻变革。蓝牙模块&#xff0c;作为物联网技术的重要组成部分&#xff0c;以其低功耗、低成本…

java文件IO操作

前言&#xff1a; java里面的文件操作分为文件系统操作和文件内容操作。文件系统操作主要是针对File这个类来进行操作&#xff0c;而文件内容操作总的来说有四个&#xff1a;Reader&#xff0c;Writer&#xff0c;InputStream&#xff0c;OutputStream&#xff0c;前面两个是通…

CCAA质量管理【学习笔记】​​ 备考知识点笔记(七)质量相关法律法规及《管理体系审核员准则》2021修订3

5、质量管理体系基础考试大纲 3.3法律法规和其他要求 a)《中华人民共和国民法典》第三编 合同&#xff1b; b)《中华人民共和国消费者权益保护法》 c)《中华人民共和国产品质量法》 d) 中国认证认可协会相关人员注册与管理要求 目 录 前 言 第一章 总则 1.1 引言 1.2 适…

重学java 79.JDK新特性 ⑤ JDK8之后的新特性

别怕失败&#xff0c;大不了重头再来 —— 24.6.20 一、接口的私有方法 Java8版本接口增加了两类成员: 公共的默认方法 公共的静态方法 Java9版本接口又新增了一类成员: 私有的方法 为什么IDK1.9要允许接口定义私有方法呢? 因为我们说接口是规范&#xff0c;规范是…

由于找不到msvcp140.dll无法继续执行代码是什么意思,解决msvcp140.dll文件

由于找不到msvcp140.dll无法继续执行代码这种提示&#xff0c;你知道要怎么去处理么&#xff1f;出现这情况&#xff0c;你的程序就代表出现问题了&#xff0c;你会发现打不开&#xff0c;我们需要修复msvcp140.dll文件才能正常的使用程序。今天我们就来聊聊msvcp140.dll找不到…

加密好的WPSword文档,忘记密码怎么办?

在日常办公和学习中&#xff0c;我们经常使用WPS Word等文档处理软件来创建和编辑重要文件。为了保护这些文件不被未经授权的人访问&#xff0c;我们通常会选择给文档设置密码。然而&#xff0c;有时我们可能会因为时间久远或其他原因而忘记自己设置的密码&#xff0c;这时该如…

【Go】用 DBeaver、db browser 和 SqlCipher 读取 SqlCipher 数据库

本文档主要描述如何用 DBeaver、db browser 和 SqlCipher 上打开加密的 SQLite3 数据库(用 SqlCipher v3 加密) 软件版本 DBeaver&#xff1a;v24.1.0 SQLite-driver: sqlite-jdbc-3.46.0.0.jar dbbrowser-for-sqlite-cipher&#xff1a;3.12.2 SqlCipher cli(ubuntun)&am…

如何避免在React中的回调函数中使用箭头函数可能引起的内存泄漏?

在React中&#xff0c;箭头函数在回调函数中的使用确实可能引发性能问题&#xff0c;尤其是当这些函数在渲染方法或者组件内部被定义时。每次组件重新渲染时&#xff0c;都会创建这些函数的新实例&#xff0c;这可能导致不必要的计算和内存使用&#xff0c;甚至在某些情况下引发…

2024年了,上大学可以不需要用到电脑吗?

前言 在2024年的今天&#xff0c;电脑已经成为了人们工作生活的一大部分。Oh, no&#xff01;好像手机才是。 好像每个人都是这样的&#xff1a;可以没有电脑&#xff0c;但不能没有手机…… 所以2024年的今天&#xff0c;上大学的小伙伴们可以不需要用到电脑吗&#xff1f;…

3D打印随形透气钢引领模具排气新潮流

随着模具制造技术的不断发展&#xff0c;金属3D打印技术正逐渐成为模具制造领域的一大亮点。除了已广泛应用的随形水路技术外&#xff0c;金属3D打印在解决模具困气问题上同样展现出独特优势&#xff0c;成为模具排气、解决困气的重要技术方向。 模具的排气系统一直是模具设计制…

前端菜鸡学习日记 -- computed和watch的用法

目录 1.computed&#xff1a; 2.watch&#xff1a; 哈喽哇大家&#xff0c;又是新的一周&#xff0c;因为一些特殊的原因&#xff0c;所以目前是比较闲的&#xff0c;就趁机多学习一点东西把&#xff0c;这些学习日记就是学习中的笔记咯&#xff0c;流水账日记则是工作中遇到…