如果老闆要求使用php,可是您卻是Ruby狂熱者,這.. 怎辦呢?
沒關係! 一樣用Ruby寫,php只要做一點點的處理就好!
How to? php中有這個函式:exec
( 本範例實作於Windows XP Professional搭配InstantRails;在其他作業系統上沒有測試過,不過各位還是可以嘗試看看 )
我們來試試看吧!
先寫個test.rb:
#!/usr/bin/env ruby
#
# Filename: test.rb
#
puts "Hello"
puts "world"
再寫個test.php:
<?php
exec("test.rb", $args);
foreach($arg as $args)
echo $arg . "<br />";
?>
將兩個檔案放在同一個目錄下後,打開瀏覽器瀏覽test.php;看!是不是顯示結果出來了?
OK,我們直接來用ActiveRecord幫我們新增資料吧!
我們需要一張普通頁面、一張php網頁跟一個ruby檔案:
#!/usr/bin/env ruby
#
# Filename: ar.rb
#
require 'rubygems'
gem 'activerecord'
ActiveRecord::Base.establish_connection(
:adapter => 'mysql',
:host => 'localhost',
:username => 'root',
:password => '',
:database => 'cal'
)
class Event < ActiveRecord::Base;end
name, descr = ARGV[0], ARGV[1]
puts Event.new({:name => name, :descr => descr, :date => Date.today, :time => Time.now}).save
好了,接下來是普通頁面,這是送出表單:
<!-- Filename: ar_form.html -->
<html>
<head>
<title>PHP with Ruby and ActiveRecord</title>
</head>
<body>
<form action="ar_save.php" method="POST">
Username: <input type="text" name="usrname" /><br />
Description: <textarea name="descr"></textarea><br />
<input type="submit" value="Save it!" />
</form>
</body>
</html>
這是php網頁:
<?php
// Filename: ar_save.php
exec("2.rb " . $_POST["usrname"] . " " . $_POST["descr"], $arg);
if($arg[0]) echo "Success!";
?>
OK,讓我們來試試看吧!
Look!! It works!!
現在,我們來寫個ar_read.rb跟ar_read.php來讀取資料吧:
# Filename: ar_read.rb
require 'rubygems'
gem 'activerecord'
ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:host => "localhost",
:username => "root",
:password => "",
:database => "cal"
)
class Event < ActiveRecord::Base;end
events = Event.find(:all, :conditions => "name = '#{ARGV[0]}'")
events.each{ |event|
puts event.name
puts event.descr
puts event.date.to_s(:db)
puts event.time.strftime("%H:%M:%S")
}
<?php
// Filename: ar_read.php
exec("ar_read.rb " . $_GET["name"], $args);
$info = array();
for($i=0, $j=0;$i<count($args);$i+=4, $j++){
$info[$j]["name"] = $args[$i];
$info[$j]["descr"] = $args[$i+1];
$info[$j]["date"] = $args[$i+2];
$info[$j]["time"] = $args[$i+3];
}
for($j=0;$j<count($info);$j++)
echo "Name => " . $info[$j]["name"] . "<br />Description => " . $info[$j]["descr"] . "<br />Date => " . $info[$j]["date"] . "<br />Time => " . $info[$j]["time"] . "<br />";
?>
看看結果,hmmm.. 看起來真棒!
嗯?如何?Ruby + ActiveRecord的威力很強大吧?
為什麼不要直接用PHP寫就好? 因為光寫SQL你就想跳樓,何必呢?
記住,在Ruby的檔案中,不可以用:
puts 1, 2, 3
這種方法,會造成php收不到回傳,因此必須用這種寫法:
puts 1
puts 2
puts 3
或者就是:
puts 1; puts 2; puts 3
端看個人喜好囉!
分享到:
相关推荐
框架:html + css + js + asp.net + ActiveRecord+CastleConfigFramwork + sql 前端:html + css + js 后端:asp.net + ActiveRecord + CastleConfigFramwork + sql 开发工具:vs2022 角色介绍: 管理员 admin ...
框架:html + css + js + asp.net + ActiveRecord+CastleConfigFramwork + sql 前端:html + css + js 后端:asp.net + ActiveRecord + CastleConfigFramwork + sql 开发工具:vs2022 角色介绍: 管理员 admin ...
在Ruby开发领域,ActiveRecord是Ruby on Rails框架中一个至关重要的组件,它为数据库操作提供了对象关系映射(ORM)功能。在这个特定的上下文中,我们关注的是"Ruby-ActiveRecord的BiTemporal数据模型"。BiTemporal...
在Ruby开发中,ORM(对象关系映射)框架如ActiveRecord极大地简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据库交互。而`ActsAsParanoid`是针对ActiveRecord的一个插件,它提供了一种非常实用的功能...
aasm, ruby 类( 普通 ruby,ActiveRecord,Mongoid )的AASM状态机 AASM --ruby-状态机 索引从版本升级到 4使用情况回调函数生命周期管理当前事件触发器 。过渡模式每个类的多状态机句柄名称在多个状态机之间冲突。...
《Pro ActiveRecord Databases with Ruby and Rails》这本书深入探讨了如何使用ActiveRecord框架来高效地处理Ruby on Rails中的数据库操作。本书由Kevin Marshall、Chad Pytel和Jon Yurek共同撰写,他们都是在Ruby与...
Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。
框架 vs2019 + html + css + jquery + C# + mvc + Asp.net MVC + AR(Castal ActiveRecord+CastleConfigFramwork) + sql server 2008 注意sql server类和access数据库可以使用vs自带的数据库启动,不需要安装庞大的...
《Pro ActiveRecord:Databases with Ruby and Rails》这本书深入探讨了如何使用ActiveRecord这一对象关系映射(Object Relational Mapping, ORM)工具来管理和操作数据库,特别是在Ruby on Rails框架中的应用。...
框架 vs2019 + html + css + jquery + C# + mvc + Asp.net MVC + AR(Castal ActiveRecord+CastleConfigFramwork) + sql server 2008 注意sql server类和access数据库可以使用vs自带的数据库启动,不需要安装庞大的...
**Ruby-ActiveRecord Turntable:数据库分片的ActiveRecord扩展** 在现代的Web应用程序中,随着数据量的增长,单个数据库可能无法满足高效处理和存储的需求。这时,数据库分片技术应运而生,它将数据分布在多个...
Castle ActiveRecord是NHibernate ActiveRecord实现的一个版本,提供了额外的功能和方便性。它是一个AOP(面向切面编程)框架,能够自动管理对象的生命周期,包括事务、验证和持久化。 9. **最佳实践** 在实际...
用于ClickHouse的Ruby数据库ActiveRecord驱动程序。 支撑轨> = 5.2。 从20.9 LTS支持ClickHouse版本。 安装 将此行添加到应用程序的Gemfile中: gem 'clickhouse-activerecord' 然后执行: $ bundle 或将其自己...
Ruby-Ancestry是一个非常有用的库,它允许开发者在ActiveRecord模型中构建和管理层次结构,形成树状结构。这个库特别适用于那些需要处理有层级关系数据的场景,比如分类、菜单系统、组织架构等。Ancestry通过提供一...
在Ruby on Rails框架中,ActiveRecord是一个至关重要的组件,它负责模型(Model)与数据库之间的交互。本实例将深入探讨ActiveRecord的基本用法,帮助理解如何在实际开发中有效地运用这个强大的工具。 首先,让我们...
该项目是采用Java语言实现的Ruby on Rails ActiveRecord设计理念的源码,总计包含46个文件,其中40个为Java源文件,其他包括Git忽略文件、许可证、Markdown文件、XML配置文件、数据库方言和驱动文件等。该设计旨在...
Ruby是一种动态、面向对象的编程语言,而ActiveRecord是Ruby on Rails框架中的一个核心组件,它是一个对象关系映射(ORM)系统。ActiveRecord提供了一种简洁的方式将数据库操作与Ruby对象模型化,使得开发者可以方便...
**Ruby-SearchCop:为ActiveRecord打造的全文搜索引擎** 在Ruby on Rails开发中,ActiveRecord是常用的ORM(对象关系映射)工具,它允许开发者用面向对象的方式操作数据库。然而,标准的ActiveRecord查询并不总是...
5. **数据库交互**:Rails使用ActiveRecord,它是ORM(对象关系映射)的一部分,允许开发者使用Ruby代码操作数据库,而无需编写SQL。 6. **测试**:Rails强调TDD(测试驱动开发),提供了如RSpec和MiniTest等测试...