设为首页 收藏本站
查看: 582|回复: 0

[经验分享] 使用ROR编写ORACLE WEB应用

[复制链接]

尚未签到

发表于 2016-7-22 09:15:16 | 显示全部楼层 |阅读模式
  
使用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程序就基本完成了。
当然,你还可以再加入自己的方法,使应用更加完善!
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-247638-1-1.html 上篇帖子: Oracle jobs(DBMS_JOB and DBMS_SCHEDULER) 下篇帖子: Oracle体系结构之-物理结构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表