文档章节

ruby博客系统开发-----NetBeans篇

crossmix
 crossmix
发布于 2015/12/08 21:48
字数 2269
阅读 39
收藏 0
点赞 0
评论 0

     之前用过ASP,asp.net,PHP,Python开发的博客系统,对于ruby很陌生,ruby语言不是很流行,毕竟ruby语言是日本人发明的,也许更好用。当然要实践之后才知道。我查阅了图书馆有关ruby的书籍与源代码,试着练习一下,下面是我的开发心得。

     ruby开发要求

一个数据库服务器

支持 Ruby 的 NetBeans IDE 8.1,目前最新版本,当然使用visual studio,MyEclipse也可以开发ruby程序。这里介绍NetBeans。

创建示例数据库

注意:本教程使用 MySQL 数据库服务器。有关在 Ruby 应用程序中有使用MySQL 数据库服务器的信息,请参阅安装和配置 Ruby 支持。本文档中同样包括如何使用 Java DB 数据库服务器的技巧。

创建 Ruby on Rails 项目之前,首先需要先创建一个 rubyweblog_development 数据库。步骤如下:

打开一个命令窗口。

启动 MySQL 数据库服务器,如果它还没有启动。

输入以下命令创建 rubyweblog_development 数据库,然后单击回车键。
mysqladmin -u root -p create rubyweblog_development
注意: 如果根用户未设置口令,则省略 -p 参数。

创建 Ruby on Rails 项目

首先,创建一个 Ruby on Rails 项目。默认情况下,Ruby on Rails 应用程序将创建在符合项目约定的目录结构中。

NetBeans IDE 中,选择 File > New Project。

在 Categories 栏中选择 Ruby ,在 Projects 栏中选择 Ruby on Rails Application。单击 Next 按钮。

注意:首次在 IDE 中创建 Ruby 项目时,IDE 会检查系统中是否还安装了其他 Ruby 软件(除了 IDE 随带的 JRuby 软件之外)。如果有,IDE 会弹出一个对话框,询问您选择使用哪一个软件。如果要使用 IDE 随带的 JRuby 解释器,就选择 JRuby,反之,选择安装的 Ruby。有关更多信息,请参阅安装和配置 Ruby 教程中的 Configuring the IDE to Use Your Own Ruby Installation 一节。

在 Project Name 栏中输入 RubyWebLog 。接受所有其他默认设置。

单击 Finish 按钮,这样便创建了一个新项目。

IDE 将创建一个项目目录,名称与你的项目名称相同。您将看到:

Projects 窗口包含应用程序的基本类别。需要特别关注的是 Controllers、Models 和 Views 节点。在本教程中,我们将遵循基本流程创建模型、添加控制器并生成视窗。

Output 窗口将列出应用程序的文件列表。你可以单击 Output 窗口中的链接在编辑区域打开该文件。

配置数据库环境

接下来的步骤是编辑 database.yml 文件,该文件已经配置使用 MySQL 适配器和 development 数据库。你无需进行任何配置,除非设置了根用户口令。

打开 Configuration > database.yml

编辑 database.yml 文件,在 development 配置中添加 口令。

保存并关闭 database.yml 文件。

特别注意: 如果操作系统的主文件中未包含 localhost,则使用 127.0.0.1 代替。另外还需注意,在一些系统中,应使用小写字母进行数据库设置。

创建模型

在本节中,你将利用 Rails Generator 创建应用程序的模型。Ruby 博客应用程序需要使用 Post 模型存储博客文章的实例。

在 Projects 窗口中,右键单击 Models 节点,然后选择 Generate。

在 Rails Generator 对话框的 Arguments 栏中输入 Post,然后单击 OK 按钮。

Rails Generator 将创建一个名为 Post 的模型。Output 窗口将列出该操作创建的文件:

app/models/post.rb。该文件包含 Post 模型的方法。该文件还将在编辑域中打开。

test/unit/post_test.rb。 检验 Post 模型的测试单元。

test/fixtures/posts.yml。安装模型的固定测试文件。

db/migrate/migrate/001_create_posts.rb。定义数据库初始结构的迁移文件。

迁移数据库

接下来,我们需要修改迁移文件 001_create_posts.rb。首先添加信息配置数据库。

在 Output 窗口中,单击 001_create_posts.rb 文件的链接。

打开该文件,可以看到一个 self.up 方法(用于创建 posts 表)和一个 self.down 方法(用于释放 posts 表)。

将标题栏(以下代码的 黑体部分)添加到 self.up 方法的 create_table 中,如下图所示:

代码示例 1: 001_create_posts.rb 的代码
class
CreatePosts < ActiveRecord::Migration
  def self.up
   create_table :posts do |t|

t.column "title", :string
   end
  end
  def self.down
   drop_table :posts
  end
end

在主菜单中,选择 File > Save All。

在 Projects 窗口中,右键单击 RubyWebLog 节点,然后选择 Migrate Database > To Current Version。

该操作将更新数据库,使数据库中含有 posts 表。Output 窗口将显示迁移何时完成。

创建一个控制器

接下来,使用 Rails Generator 创建一个控制器与 Post 模型交互。在本教程中,我们添加了支架(Scaffolding)代码,可提供一个 CRUD 界面用于在博客中创建、读取、更新和删除条目。

在 Projects 窗口中,右键单击 Controllers 节点,选择 Generate。

在 Rails Generator 对话框的 Name 栏中输入 Blog,置空 Views 栏,单击 OK 按钮。

这样将创建一个 blog_controller.rb 文件,并在编辑域中打开该文件。这时,Projects 窗口的 Controllers 节点中就添加了一个 blog_controller.rb 节点。

编辑 blog_controller.rb,在其中添加以下 scaffolding 代码。此代码将为 Post 模型提供一个简单的 CRUD 应用程序。

代码示例 2: blog_controller.rb 的代码
class
BlogController <
ApplicationController
scaffold :post
end


运行应用程序

接下来,测试应用程序。

在 Configuration 节点中,打开 routes.rb。找到下面这行代码:

# map.connect '', :controller => "welcome"

删除注释标记(#),将 welcome 修改为 blog。

展开 Public 节点,右键单击 index.html,然后选择 Delete。

index.html 将默认显示 Welcome 页面,而这并不是你想要的。通过删除 index.html, Rails 将在 routes.rb 中寻找需要显示的页面。在前面的步骤中,我们已经将 welcome 页面已经修改为 blog。

选择 File > Save All。

单击工具栏中的 Run Main Project 按钮。

该操作将启动 WEBrick 服务器,它是 Ruby on Rails 框架的一部分。同时将启动 web 浏览器。下图是该应用程序的初始页面。

图 1: RubyWebLog 主页

单击 New 按钮。

图 2: 创建新日志

输入一个标题,然后单击 Create 按钮。

下图就是创建博客日志的一个例子。

图 3: 成功创建博客日志

更多功能:再添加一个字段

此处,我们将再添加一个字段(除了Title字段之外),从而使 posts 表包含一个 Body 栏,用于提供博客的正文内容。创建字段的步骤现在应该很熟练了。

右键单击 Database Migrations 节点,选择 Generate。 在 Rails Generator 对话框的 Arguments 栏中输入 AddBody,然后单击 OK 按钮。

IDE 将创建一个迁移脚本版本文件 002_add_body.rb,并在编辑域中打开该文件。

对 002_add_body.rb 作如下修改:

代码示例 3: 002_add_body.rb 的代码
class AddBody < ActiveRecord::Migration
  def self.up
add_column 'posts', 'body', :text
  end
  def self.down
remove_column 'posts', :body
  end
end

如果您再次返回迁移脚本,这个迁移脚本将会把正文栏添加到 posts 表中,然后又将它删除。

选择 File > Save All。

右键单击 RubyWebLog 节点,选择 Migrate Database > To Current Version。

返回浏览器,单击 New Post 链接,看 Ruby 如何识别新的正文字段。

图 4:含有正文字段的新日志


再创建一些博客条目。例如:

图 5: 更多博客日志

更多功能:使列表看起来更像是一个博客

用于 BlogController 中的 scaffold 方法创建出一个基本的 CRUD 应用程序,使您能够轻松地对 Post 模型进行测试。现在,您利用 scaffold 方法生成同样的视窗,这样一来,用户界面可以由您来进行个性化定制。

在 Projects 窗口中,右键单击 Views 节点,然后选择 Generate。

在 Rails Generator 对话框中,从 Generate 下拉菜单中选择 scaffold。

在 Model Name 栏中输入 Post,在 Controller Name 栏中输入 Blog 。将 Actions 栏置空。选择 Overwrite,强制 BlogController 重新生成,然后单击 OK 按钮。

IDE 会为 Post 模型创建一个视窗,并在 Output 窗口中列出内容。

展开 Views > blog,并打开 list.rhtml,该文件用以显示博客条目的列表。 删除 <h1> 和 <table> 标记,并将其替换为下列代码:

代码示例 4: list.rhtml 代码
<h1>The Ruby Blog</h1>
<% @posts.each do |post| %>
  <h2><%= post.title %></h2>
  <p><%= post.body %></p>
  <small> <%= link_to 'Permalink', :action => 'show', :id =>
post%></small>
  <hr>
<% end %>

此代码将为每个 post 操作实例都生成一个标题、正文和 Permalink,如图 6所示。

选择 File > Save All ,然后刷新浏览器,查看 Post 模型的新界面。

图 6: 新的、改进的模型界面

想要首先显示最新的条目,就需要通过在 @posts in list.rhtml 的末尾添加 .reverse 来反转排序次序:

<% @posts.reverse.each do |post| %>

保存文件并刷新浏览器,博客程序将显示如下内容:

图 7: 反序显示博客日志

end,较之PHP开发博客系统差不多,但方便一些。

© 著作权归作者所有

共有 人打赏支持
crossmix
粉丝 64
博文 302
码字总数 645711
作品 0
广州
高级程序员
Apache NetBeans 9.0 RC1 发布:支持 Java 9

Apache NetBeans 9.0 RC1 已发布,更新信息见 Apache NetBeans 9.0 Features、Apache NetBeans 9.0 beta 发布。 值得关注的更新 Oracle 代码捐赠的知识产权许可 支持 Java 9 全面支持 JPMS (...

淡漠悠然 ⋅ 05/30 ⋅ 26

Lombok 1.16.22 发布,减少样板代码的 Java 语法糖

Lombok 1.16.22 发布了,更新内容如下: FEATURE: Private no-args constructor for and to enable deserialization frameworks (like Jackson) to operate out-of-the-box. Use to disable......

淡漠悠然 ⋅ 05/30 ⋅ 0

【IDE】eclipse与Idea

前言 工欲善其事必先利其器,今天来梳理一下IDE的学习,此篇博客中实用性的知识比较少,主要是梳理学习一个新IDE的思路。以至于接触新东西时手忙脚乱。 (一) Idea:参考《Intellij+IDEA2017...

binggetong ⋅ 05/07 ⋅ 0

FTServer 0.10 发布,Java 多语言全文搜索服务器

FTServer 是一个多语言全文搜索服务器,支持汉字的任意排列顺序,无须提前准备词典。 低内存占用同时保持高处理效率,实时录入新内容。 更新内容: 位于搜索结果第二页的网页简介(meta name=...

iBoxDB ⋅ 06/19 ⋅ 0

eclipse for php 开发环境配置

PHP有非常多相当不错的开发工具,如Zend Studio、NetBeans、phpdesigner等,但对于习惯Java编程的程序员们来说,下面介绍最经常使用的还要属Eclipse。 > 我们是在wmap下配置eclipse php的,注...

---dgw博客 ⋅ 05/14 ⋅ 0

25个据说只有程序员才能看懂的笑话

1.iPhone X滚动通过刘海的另一种解决方案 2.这个纹身将我的两个心头宝组合了在一起:科技和可怕的双关 小编觉得这个创意很好啊,作为一个前端妹子,非常想去整一个 3.在部门里我们严格按照这...

急速奔跑中的蜗牛 ⋅ 前天 ⋅ 0

初学Python,对于开发工具不是很了解?一文带你选择适合你的开发工具

工欲善其事必先利其器! 开发Python用什么工具好呢?其实刚学Python的话,使用IDLE就够了,虽然调试不是特别方便,但是对于初学已经够了,可以使用Print进行简单的调试,不建议使用记事本进行...

柯西带你学编程 ⋅ 06/01 ⋅ 0

NetBeans 时事通讯(刊号 # 67 - Aug 04, 2009)

项目新闻 下载 NetBeans IDE 6.8 里程碑 1 NetBeans 团队很高兴的发布了 NetBeans IDE 6.8 里程碑 1 。发布的最值得注意的功能包括嵌入式浏览器,对 Java EE 6 和 Jira 的支持, 以及对PHP,...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

成为Java高手的25个学习目标

你已经掌握了这25条中的多少条了呢? 1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是 class,object,interaction以及statediag...

thinkyoung ⋅ 2014/11/01 ⋅ 0

NetBeans 时事通讯(刊号 # 147 - May 18, 2011)

Community Java 杂志——寻找女性技术贡献者 你知道有女性在为技术而工作,或着你就是其中的一员?甲骨文正在发起一项新的在线 Java 杂志,并为找到的女性贡献着开辟了“Java Nation”专栏。...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 6分钟前 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

java高级架构牛人 ⋅ 28分钟前 ⋅ 0

用户登录信息-钉子效果(基于jquery2.0)

本js效果使用jquery2.0,清晰的分解用户登录信息的(钉子效果),该效果直接用在作者网站(www.phpkhbd.com)上。 里面的难点有:定时器,延时。 大致效果如下: 一开始: 鼠标放上去的时候:...

宁哥实战课堂 ⋅ 30分钟前 ⋅ 0

解决yum安装报错Protected multilib versions

使用yum安装报错Protected multilib versions原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上如下一段命令: --setopt=protected_multilib=false 案例: 比如需...

北岩 ⋅ 41分钟前 ⋅ 0

为什么要学习Typescript???

简单来说 目前的typescript就是未来的javascript 为什么?? 这要从ECMA-262标准的第4版说起 对了 我们说的ES5 其实是ECMAScript3.1这个替代性建议被扶正了而已... 那么 第4版标准是什么? 看看...

hang1989 ⋅ 45分钟前 ⋅ 0

linux安装ipfs

一、下载ipfs # cd /usr/local/ipfs/ # wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz # tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz 二、安装ipfs # ......

八戒八戒八戒 ⋅ 51分钟前 ⋅ 0

jvm程序执行慢诊断手册

生产环境最多的几种事故之一就是程序执行慢,如果是web服务的话,表现就是响应时间长。本文分享,从业多年形成的排查守则。 诊断步骤 系统资源查看 首先是系统资源查看,而且必须是在第一步。...

xpbob ⋅ 51分钟前 ⋅ 0

YII2 advanced 高级版本项目搭建-添加API应用以及多应用

一、YII安裝 安裝yii可以用composer安裝,也可以在yii中文社区下载归档文件安装 composer安装就不介绍了,因为要安装composer,比较麻烦,当然安装了composer是最好的,以后安装yii的插件要用...

botkenni ⋅ 52分钟前 ⋅ 0

在jdk1.8的环境下模拟永久代内存溢出

相信不少小伙伴在看深入理解Java虚拟机的时候,作者给我们举例一个demo来发生PermGen space 1、通过List不断添加String.intern(); 2、通过设置对应的-XX:PermSize与-XX:MaxPermSize(更快看到...

虾几把写 ⋅ 今天 ⋅ 0

开发OpenDaylight组件的完整流程

在前面介绍学习了OpenDaylight的几个重要模块后,这里再来介绍下完整开发一个模块的过程。 OSGI的bundles提供被其他OSGI组件调用的服务。这个教程中展示的是Data Packet Service去解析数据包...

wangxuwei ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部