上個例子,我們用PHP + Ruby 搭配ActiveRecord的方式來寫資料新增的程式
今天我們就來延伸應用一下,要做什麼呢? RSS聯撥器!
有鑒於GoogleReader的RSS聯撥器產生出來的東西太醜(只能修改一兩個小地方.. 我總覺得那好胖= =),乾脆自己寫個來用
Demo網址改天再PO上來,我們先來寫程式比較重要:P
主機請記得先裝好Ruby、PHP、Apache跟MySQL;OS要啥都沒差,我比較建議LAMP的配置XD
我們來建立一個叫做feeds的目錄包含一個子目錄,叫做lib:
mkdir -p feeds/lib
先跳到feeds/lib新增幾個會被require的檔案:
cd feeds/lib
touch connect.rb model.rb require.rb
以下是各個檔案的用處:
- connect.rb
資料庫連線初始化
- model.rb
資料表模型宣告
- rqeuire.rb
會用到的額外library引入
原始碼:
- connect.rb
#!/usr/bin/env ruby;require 'lib/require';ActiveRecord::Base.establish_connection({:adapter => "mysql",:host => "localhost",:username => "username",:password => "password",:database => "others"})
- model.rb
#!/usr/bin/env ruby;require 'lib/connect';class Feed < ActiveRecord::Base;end
- require.rb
#!/usr/bin/env ruby;%w|rubygems active_record hpricot open-uri|.each{|lib| require lib}
一切搞定後,我們可以開始來建立資料庫了!
mysql> create database others;
mysql> use others;
mysql> create table feeds(id int, uri varchar(255));
mysql> describe feeds;
看看資料表結構是否正確!
接著回到上一層目錄,新增底下的幾個檔案:
touch index.php list.rb new.htm new_record.rb save.php
- index.php
網站首頁,會列出目前的RSS feed
- save.php
儲存RSS feed網址
- list.rb
處理RSS feed
- new_record.rb
將RSS feed網址存入資料庫(也可以直接用php寫.. 我是沒有意見)
- new.htm
新增RSS feed網址的表單
原始碼我就直接貼了
- index.php
<html>
<head>
<title></title>
</head>
<body>
<a href="new.htm">Create</a>
<ul>
<?php
exec("ruby list.rb", $args);
for($i=0;$i<count($args);$i+=3)
echo "<li><a href=\"" . $args[$i+1] . "\" title=\"作者:" . $args[$i+2] . "\">" . $args[$i] . "</a> -- " . $args[$i+2] . "</li>";
?>
</ul>
</body>
</html>
- save.php
<?php
exec("ruby new_record.rb " . $_POST["feed_uri"], $arg);
if ($arg) echo "<script>location.href=\"index.php\";</script>";
?>
- list.rb
#!/usr/bin/env ruby
=begin
Filename: list.rb
=end
require 'lib/model'
Feed.find(:all).each{|feed|
doc = Hpricot(open(feed.uri))
rss = doc.search("entry")
max = rss.size > 3 ? 3 : rss.size
max.times {|i|
break if rss.nil?
puts rss[i].search("title").text.gsub(/\n/, " ") # Return the title of the article to the PHP file.
puts rss[i].search("link[@rel='alternate']")[0]["href"].gsub(/\n/, " ") # Return the link of the article to the PHP file.
puts rss[i].search("author/name").text.gsub(/\n/, " ") # Return the author of the article to the PHP file.
}
}
- new_record.rb
#!/usr/bin/env ruby
=begin
Filename: new_record.rb
=end
require 'lib/model';puts Feed.new({:uri => ARGV[0]}).save
- new.htm
<html>
<head>
<title></title>
</head>
<body>
<form action="save.php" method="post">
<p>Please input the feed url:<input type="text" name="feed_uri" /></p>
<p><input type="submit" value="Save!" /></p>
</form>
</body>
</html>
OK,這樣就可以啦XD
分享到:
相关推荐
Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。
activerecord4-redshift-adapter, 用于Amazon红移的ActiveRecord 4 DB适配器 activerecord4-redshift-adapter用于 ActiveRecord 4 ( Rails 4 )的Amazon Redshift适配器。 我从ActiveRecord复制了PostgreSQL驱动程序...
activerecord-oracle-adapter-1.0.0.9250.gem 我找了很久才找到的,希望能解决部分像我这样,需要的同志!分就不要了,我就搬运了下,希望能解决部分人的问题!
activerecord-sqlserver-adapter-mirroring 一个简单的插件,它为添加了数据库镜像支持。 目标 Rails 4.1.x 和 activerecord-sqlserver-adapter 4.1.0。 用法 添加到 Gemfile: gem 'tiny_tds' gem '...
在Ruby开发领域,ActiveRecord是Ruby on Rails框架中一个至关重要的组件,它为数据库操作提供了对象关系映射(ORM)功能。在这个特定的上下文中,我们关注的是"Ruby-ActiveRecord的BiTemporal数据模型"。BiTemporal...
activerecord5-redshift-适配器 适用于ActiveRecord 5的Amazon Redshift适配器(导轨5)。 我从aamine / activerecord4-redshift-adapter克隆了该项目。 ActiveRecord4的Redshift驱动程序已存在于: : ,而...
Ruby是一种动态、面向对象的编程语言,而ActiveRecord是Ruby on Rails框架中的一个核心组件,它是一个对象关系映射(ORM)系统。ActiveRecord提供了一种简洁的方式将数据库操作与Ruby对象模型化,使得开发者可以方便...
《Pro ActiveRecord Databases with Ruby and Rails》这本书深入探讨了如何使用ActiveRecord框架来高效地处理Ruby on Rails中的数据库操作。本书由Kevin Marshall、Chad Pytel和Jon Yurek共同撰写,他们都是在Ruby与...
ActiveRecord SQL Server适配器。 对于SQL Server 2012及更高版本。 -TravisCI -传送带-宝石版-社区关于适配器使用SQL Server 2012或更高版本的ActiveRecord v6.0SQL Server适配器。 对旧版本感兴趣吗? 我们遵循...
描述中提到"scala-activerecord.zip",这可能是Scala Activerecord的主要库文件,而"scala activerecord scalatraactiverecord"则暗示Scala Activerecord可能与ScalatraActiverecord有关,ScalatraActiverecord是一...
在Ruby开发中,ORM(对象关系映射)框架如ActiveRecord极大地简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据库交互。而`ActsAsParanoid`是针对ActiveRecord的一个插件,它提供了一种非常实用的功能...
框架:html + css + js + asp.net + ActiveRecord+CastleConfigFramwork + sql 前端:html + css + js 后端:asp.net + ActiveRecord + CastleConfigFramwork + sql 开发工具:vs2022 角色介绍: 管理员 admin ...
本主题将深入探讨如何在Rails应用中使用SQL Server作为数据存储,特别关注`activerecord-sqlserver-adapter`这个gem,它使得Ruby的ActiveRecord能够与Microsoft SQL Server无缝集成。 `activerecord-sqlserver-...
框架:html + css + js + asp.net + ActiveRecord+CastleConfigFramwork + sql 前端:html + css + js 后端:asp.net + ActiveRecord + CastleConfigFramwork + sql 开发工具:vs2022 角色介绍: 管理员 admin ...
yii2转换行为 转换行为是ActiveRecord模型的Yii2扩展,它将帮助您增加转移任何实体的可能性。 你可以看到 安装 通过安装此扩展程序的... +--------------+ +--------------+ +-------------------+ | post | | po
neo4apis-activerecord 将数据从PostgreSQL / mySQL / sqlite复制到Neo4j的最简单,最快的方法 如何运行: 没有现有的ActiveRecord应用程序: neo4apis activerecord all_tables --identify-model --import-all-...
**Ruby-ActiveRecord Turntable:数据库分片的ActiveRecord扩展** 在现代的Web应用程序中,随着数据量的增长,单个数据库可能无法满足高效处理和存储的需求。这时,数据库分片技术应运而生,它将数据分布在多个...
《Pro ActiveRecord:Databases with Ruby and Rails》这本书深入探讨了如何使用ActiveRecord这一对象关系映射(Object Relational Mapping, ORM)工具来管理和操作数据库,特别是在Ruby on Rails框架中的应用。...
aasm, ruby 类( 普通 ruby,ActiveRecord,Mongoid )的AASM状态机 AASM --ruby-状态机 索引从版本升级到 4使用情况回调函数生命周期管理当前事件触发器 。过渡模式每个类的多状态机句柄名称在多个状态机之间冲突。...