`
chella
  • 浏览: 32890 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用ROR编写ORACLE WEB应用

    博客分类:
  • RUBY
阅读更多


使用ROR连接oracle(或MySQL)数据库

第一步:配置ROR数据库环境
1 安装oci

gem install ruby-oci8 2.0.3 --remote
2 安装oracle-adapter
gem install activerecord-oracle-adapter --source http://gems.rubyonrails.org

rubyonrails是很不错的ROR资源网站,可以下载到大部分的ROR源包。
3 配置我们的数据库环境,在oracle目录下建立我们需要使用的监听。
监听的建立在这里就不讨论了。(本例中使用监听为MSlistener)
4 创建需要的表结构,插入需要的基础数据。(oracle脚本见附件,使用MySQL数据库脚本稍作修改即可)

 

第二步:开始搭建ROR工程
1 创建oracle工程 rails -d oracle MusicStore(rails -d mysql MusicStore)
2 修改工程 /config/database.yml 配置数据库。
oracle数据库配置:
development:
  adapter: oracle
  database: MSlistener
  username: xxxxx
  password: xxxxx
mysql数据库配置:
development:
  adapter: mysql
  database: MSlistener
  username: xxxxx
  password: xxxxx
3 启动测试 进入工程目录,启动WEBrick应用服务器 ruby script\server
  使用 http://localhost:3000/ 访问页面,如果可以查看工作环境(application’s environment )
  则表明数据库已经配置成功。报错则查看工程目录/log/development.log查看原因。

 

第三步:编写我们的应用
1 创建model ruby script/generate model work;
            ruby script/generate model edition;
            ruby script/generate model composer;
2 修改model之间的对应关系
  打开工程 /app/model 目录
  修改 work.rb:

class Work < ActiveRecord::Base
    belongs_to :composer
    has_many :editions
end

 
  修改 edition.rb:

class Edition < ActiveRecord::Base
    belongs_to :work
end

 
  修改 composer.rb:

class Composer < ActiveRecord::Base
    has_many :works
end

 
3 编写主页面控制器
  创建控制器 ruby script/generate controller main welcome
  打开工程 编辑 /app/controller/main_controller.rb:

class MainController < ApplicationController
  def welcome
    #@composers = Composer.find(:all)
       @composers = Composer.find(:all).sort_by {|c| [c.last_name, c.first_name]}
  end

end

 
4 编写主视图
  打开工程 编辑 /app/view/main/welcome.html.erb:

<p>Click on a composer's name
to see all of that composer's works.</p>
<ul>
  <% @composers.each do |composer| %>
  <li><%= link_to "#{composer.first_name} #{composer.last_name}",
                  :controller => "composer",
                  :action     => "show",
                  :id         => composer.id %>
  </li>
  <% end %>
</ul>

 
5 编写layout布局
  打开工程 在 /app/views/layouts中创建base.html.erb:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title><%= @page_title %></title>
</head>
<body>
<h1 class="banner">The Music Store</h1>
   <%= @content_for_layout %>
<hr/>
<p>Copyright &copy; RubyOnRail, MusicStore</p>
</body>
</html>

 
  加入默认布局 编辑 /app/controller/application_controller.rb:

# Filters added to this controller apply to all controllers in the application.
# Likewise, all the methods added will be available for all controllers.

class ApplicationController < ActionController::Base
 # helper :all # include all helpers, all the time
  #protect_from_forgery # See ActionController::RequestForgeryProtection for details
  layout "base"
  # Scrub sensitive parameters from your log
  # filter_parameter_logging :password
end

 
  设置应用程序入口 编辑 /config/routes.rb文件:

map.connect '', :controller => "main", :action => "welcome"

 
6 删除 /pucblic/index.html.启动WEBrick应用服务器 ruby script\server。
ok,现在打开http://localhost:3000/ 就可以看到我们的MusicStore页面了。

 

第四步:完善我们的应用
1 创建controller ruby script/generate controller work show;
   ruby script/generate controller edition show;
   ruby script/generate controller composer show;
2 编写控制器
  打开工程 /app/controller
  修改 work_controller.rb:

class WorkController < ApplicationController
  def show
    @work = Work.find(params[:id])
  end

end

 
  修改 edition_controller.rb:

class EditionController < ApplicationController
  def show
    @edition = Edition.find(params[:id])
  end

end

 
  修改 composer_controller.rb:

class ComposerController < ApplicationController
  def show
    @composer = Composer.find(params[:id])
  end

end

 
3 编写视图
  打开工程 /app/views
  修改 /work/show.html.erb:

<p>Available editions of
 <%= @work.title %> by
 <%= "#{@work.composer.first_name} #{@work.composer.last_name}" %>
</p>
<table>
  <tr>
    <th>Edition</th>
    <th>Publisher</th>
  </tr>
  <% @work.editions.each do |ed| %> 
  <tr>
    <td><%= link_to ed.description || "(no descr.)",
               :controller => "edition",
               :action     => "show",
               :id         => ed.id %></td>
    <td><%= ed.publisher %></td>
  </tr>
  <% end %>
</table>

 
  修改 /edition/show.html.erb:

<% @page_title = 
   "#{@edition.work.title} (#{@edition.description})" %>
<p>Details of <%= @edition.work.title %>
(<%= @edition.description %>),
by
<%= "#{@edition.work.composer.first_name} 
   #{@edition.work.composer.last_name}" %></p>
<table border="1">
  <tr>
    <th>Publisher</th>
    <th>Year</th>
    <th>Price</th>
  </tr>
  <tr>
    <td><%= @edition.publisher %></td>
    <td><%= @edition.year %></td>
    <td>$<%= @edition.price %></td>
  </tr>
</table>

 
  修改 /composer/show.html.erb:

<% @page_title = 
   "Works by #{@composer.first_name} #{@composer.last_name}" %>
<p>Click on any work to see all available editions of that work.</p>
<ul>
  <% @composer.works.each do |work| %>
    <li><%= link_to work.title,
                 :controller => "work",
                 :action     => "show",
                 :id         => work.id %>
    </li>
  <% end %>
</ul>

 

启动WEBrick应用服务器 ruby script\server。
ok,我们的MusicStore程序就基本完成了。
当然,你还可以再加入自己的方法,使应用更加完善!

 

 

分享到:
评论

相关推荐

    從 PL/SQL 中調用 ROR 创建的 Web 服务

    ROR 是一个流行的开源 Web 应用框架,它基于 Ruby 语言,而 PL/SQL 则是 Oracle 数据库中的过程式编程语言。这篇文章或教程可能是关于如何整合这两种技术,以实现数据库后端与 ROR 前端之间的通信。 PL/SQL 是 ...

    WEB应用程序安全培训材料.ppt

    【基础知识】部分,学习者需要掌握至少一门网络编程语言,理解HTTP协议,熟悉Web应用开发技术,如ASP.NET、JSP、Java EE、LAMP、RoR等,并且需要了解数据库系统的漏洞和常见网络服务的漏洞挖掘。 【进阶知识】部分...

    在RHEL上安裝設置ROR(nginx+passenger+ruby+rails+oracle+netzke)

    在RHEL(Red Hat Enterprise Linux)系统上搭建Ruby on Rails(简称RoR)应用程序环境是一项技术性较强的任务,尤其当涉及到与其他服务如Nginx、Phusion Passenger、Ruby、Rails以及Oracle数据库集成时。以下是对这...

    WEB应用程序安全培训材料

    学习的目标应包括熟练使用搜索引擎查找公开漏洞信息,了解常见漏洞,并具备编写合格网络程序的能力。同时,学习如何突破服务器端沙盒模型的攻击,因为这是最直接有效的攻击方式。在攻防演练中,通过模拟实验提高实战...

    CakePHPv3.5.15PHP编写的开源Web应用框架

    CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用Ruby on Rails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。在cakephp.org站点的Sites in the wild页面可以看到当前使用...

    RoR性能优化经验谈

    在Web服务器选择上,Lighttpd被推荐为RoR应用的理想选择,因为它与应用服务器的通信进行了优化。Lighttpd在完全接收POST数据后才一次性转发,同时在接收应用服务器响应时也不限制Buffer大小,从而减少了应用服务器的...

    结合使用 Oracle 和 Ruby on Rails 教程

    Oracle是一种流行的关系型数据库管理系统,而Ruby on Rails(简称RoR)则是一个基于Ruby语言的开源Web应用框架,它以其MVC(模型-视图-控制器)架构模式和“约定优于配置”的原则受到开发者们的青睐。本文将探讨如何...

    rails-mister-cocktail:使用RoR构建的Web应用程序,用于创建,自定义和组织鸡尾酒

    该自述文件通常会记录启动和运行应用程序所需的所有步骤。 您可能要讲的内容: Ruby版本 系统依赖 配置 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) 部署说明 ...

    RoR选题方向—源代码

    Ruby on Rails(RoR)是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程。在这个选题方向中,我们主要探讨的是与RoR相关的源代码分析和学习。源代码是...

    ror实例

    Ruby on Rails(简称RoR或Rails)是一种基于Ruby语言的开源Web应用框架,它遵循Model-View-Controller(MVC)架构模式,旨在提高开发效率并提供简洁、优雅的代码结构。"ror实例"可能指的是在学习或实践中,通过创建...

    初探ROR

    Ruby on Rails(简称ROR)是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在促进开发过程的简洁性和效率。Ruby on Rails的核心理念是“Don't Repeat Yourself”(DRY,...

    用于ROR应用的lighttpd配置模板

    在开发和部署Ruby on Rails(简称ROR)应用程序时,选择合适的服务器软件是至关重要的一步。Lighttpd是一个轻量级、高效的Web服务器,尤其适合处理动态内容,如Rails应用。"用于ROR应用的lighttpd配置模板"提供了一...

    ROR安装必备所有架包

    它还负责将URL映射到控制器方法,是构建Web应用程序的基石。 接着,`activerecord`是Rails中的ORM(对象关系映射)库,使得开发者可以使用Ruby语言操作数据库。`activerecord-1.15.5.gem`包含了与数据库交互所需的...

    ror中文资料

    Ruby on Rails(RoR)是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程,提高开发效率。RoR强调“约定优于配置”,提供了一套完整的工具链,使得开发者...

    Ruby_on_Rails快速Web应用开发实战

    Ruby on Rails(简称RoR)是一种基于Ruby编程语言的开源框架,用于快速开发高效、优雅的Web应用程序。它遵循模型-视图-控制器(MVC)架构模式,强调DRY(Don't Repeat Yourself)原则,使得代码简洁且可重用性高。...

    intimate_web:一个 ROR 应用程序

    "intimate_web" 是一个基于 Ruby on Rails (ROR) 框架开发的应用程序。Ruby on Rails 是一种流行的开源 Web 开发框架,它遵循 Model-View-Controller (MVC) 设计模式,用于构建数据库驱动的 web 应用程序。这个应用...

    Quest.Toad.for.Oracle.Xpert.v8.0-ROR

    Quest.Toad.for.Oracle.Xpert.v8.0-ROR 注册机,想必很多人想要吧

Global site tag (gtag.js) - Google Analytics