Rails Girls Guides开发实战:构建你的第一个Web应用

Rails Girls Guides开发实战:构建你的第一个Web应用

【免费下载链接】guides.railsgirls.com Rails Girls Guides 【免费下载链接】guides.railsgirls.com 项目地址: https://gitcode.com/gh_mirrors/gu/guides.railsgirls.com

你还在为如何从零开始构建Web应用而烦恼吗?本文将带你通过Rails Girls Guides项目,一步步完成从环境搭建到应用部署的全过程,让你在短时间内掌握Web开发的核心技能,打造属于自己的第一个Web应用。读完本文,你将学会Rails环境配置、应用创建、功能开发、界面美化以及部署上线的完整流程。

环境准备:安装Rails开发环境

在开始构建应用之前,我们需要先搭建好Rails开发环境。Rails是一个基于Ruby的Web开发框架,因此需要先安装Ruby和相关依赖。

不同操作系统的安装指南

Rails Girls Guides项目提供了针对不同操作系统的详细安装指南,你可以根据自己的系统选择对应的安装步骤:

如果你觉得本地安装复杂,也可以选择使用Replit在线开发环境,无需在本地安装任何软件即可开始开发。

安装验证

安装完成后,打开终端(命令提示符),输入以下命令验证Rails是否安装成功:

rails --version

如果输出类似Rails 7.0.4的版本信息,则说明安装成功。

创建应用:初始化Rails项目

接下来,我们将创建一个新的Rails应用。Rails提供了强大的脚手架功能,可以快速生成应用的基础结构。

生成应用框架

打开终端,执行以下命令创建一个名为railsgirls的应用:

rails new railsgirls -m https://railsgirls.com/simple_scaffold.rb

这里的-m参数指定了一个特殊的模板,它会简化生成的文件,更适合初学者理解。

创建完成后,进入应用目录:

cd railsgirls

启动本地服务器

运行以下命令启动Rails内置的开发服务器:

rails server

打开浏览器,访问http://localhost:3000,你将看到Rails的欢迎页面,说明应用创建成功。

Rails欢迎页面

数据模型:使用Scaffold创建功能模块

Rails的Scaffold功能可以快速生成一个完整的CRUD(创建、读取、更新、删除)功能模块。我们将创建一个"Idea"模型来存储创意想法。

生成Scaffold

在终端中,按下Ctrl+C停止服务器,然后执行以下命令:

rails generate scaffold idea name:string description:text picture:string

这个命令会生成模型、控制器、视图等文件,以及数据库迁移文件。

执行数据库迁移

运行以下命令应用数据库迁移,创建数据表:

rails db:migrate

再次启动服务器:

rails server

访问http://localhost:3000/ideas,你将看到一个功能完整的想法管理页面。

Idea列表页面

界面美化:集成Bootstrap样式

默认的Rails界面比较简单,我们将使用Bootstrap来美化应用。

修改布局文件

打开app/views/layouts/application.html.erb文件,在stylesheet_link_tag之前添加Bootstrap的CSS链接:

<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css">

<%= yield %>替换为:

<div class="container">
  <%= yield %>
</div>

添加导航栏和页脚

<body>标签内添加导航栏代码:

<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <a class="navbar-brand" href="/">Idea App</a>
    </div>
    <div class="collapse navbar-collapse">
      <ul class="nav navbar-nav">
        <li class="active"><a href="/ideas">Ideas</a></li>
      </ul>
    </div>
  </div>
</nav>

</body>标签前添加页脚代码:

<footer>
  <div class="container">
    Rails Girls 2023
  </div>
</footer>
<script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>

修改样式表

打开app/assets/stylesheets/application.css,添加以下CSS:

body { padding-top: 70px; }
footer { margin-top: 50px; text-align: center; }

刷新浏览器,你将看到美化后的界面。

美化后的Idea列表

文件上传:实现图片上传功能

我们将使用CarrierWave gem来实现图片上传功能。

添加Gem依赖

打开Gemfile,在gem 'sqlite3'下方添加:

gem 'carrierwave'

在终端中执行:

bundle install

生成上传器

运行以下命令生成图片上传器:

rails generate uploader Picture

关联模型和上传器

打开app/models/idea.rb,添加:

mount_uploader :picture, PictureUploader

修改表单

打开app/views/ideas/_form.html.erb,将图片字段的text_field改为file_field

<%= f.file_field :picture %>

并修改表单开头,添加multipart: true属性:

<%= form_for @idea, html: { multipart: true } do |f| %>

显示图片

打开app/views/ideas/_idea.html.erb,将picture字段的显示改为图片标签:

<%= image_tag @idea.picture.url, width: 600 if @idea.picture.present? %>

现在,你可以上传图片并在页面上显示了。

带图片的Idea详情

路由配置:设置默认页面

我们希望访问根路径时直接显示Idea列表页面。

打开config/routes.rb,添加:

root to: 'ideas#index'

现在,访问http://localhost:3000将直接跳转到Idea列表页面。

部署上线:将应用发布到互联网

完成开发后,我们可以将应用部署到在线平台,让其他人也能访问。这里以云服务器平台为例。

准备工作

确保你已经创建了云服务器平台账户,并参考相关平台的部署指南进行操作。

部署步骤

  1. 在云服务器平台控制台创建实例,配置合适的资源规格。
  2. 安装必要的依赖软件,如Ruby、Node.js、PostgreSQL等。
  3. 通过Git克隆项目代码或直接上传代码到服务器。
  4. 安装项目依赖并执行数据库迁移:
    bundle install
    rails db:migrate
    
  5. 配置环境变量,设置数据库连接等关键参数。
  6. 使用生产环境服务器(如Puma)启动应用,并配置反向代理确保安全访问。

总结与展望

恭喜你!通过本文的指导,你已经成功构建并部署了一个完整的Web应用。你学习了:

  • Rails环境的搭建
  • 使用Scaffold快速生成功能模块
  • 集成Bootstrap美化界面
  • 实现图片上传功能
  • 配置路由和部署应用

接下来,你可以尝试添加更多功能,如用户认证、评论系统、点赞功能等。查看Rails Girls Guides获取更多教程和灵感。

希望这篇教程能帮助你开启Web开发之旅,不断探索和创造更多精彩的应用!

【免费下载链接】guides.railsgirls.com Rails Girls Guides 【免费下载链接】guides.railsgirls.com 项目地址: https://gitcode.com/gh_mirrors/gu/guides.railsgirls.com

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值