アトム-サイト
[ アトム-サイト ] - 管理人さんのページです。
feed-icon RSS2.0   feed-icon Atom
Ruby on Rails インストール
管理人さんのブログ 2007-11-07 13:13:18

まずはRubyを入れる
# yum install ruby
# ruby -v
ruby 1.8.5 (2006-08-25) [i386-linux]
バージョンは1.8.4以上でないと、Railsは動かないとの事。

gems(Rails系パッケージの管理ツール)を入れる
yumで用意されていないので、tarを落としてきます。
# wget http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz
解凍
# tar zxvf rubygems-0.9.4.tgz
# cd rubygems-0.9.4
設定
# ruby setup.rb config
# ruby setup.rb setup
# ruby setup.rb install
gemが入ったかどうか確認
# gem environment

railsをインストール
# gem install rails --include-dependencies
railsが入ったのを確認
# rails -v
最新のRailsにアップデート
# gem update --include-dependencies

Postgresを使うので、橋渡しをインストール
# gem install postgres-pr

これで、環境は整った。



◆PDF出力させる為に◆

pdf-writer 日本語だと文字が重なる不具合有り
# gem install pdf-writer

http://www2s.biglobe.ne.jp/~Nori/ruby/ja/index.html
から日本語パッチを落として解凍。パッチを当てます。
# cd pdf-writer-1.1.3
# patch -p0 < pdf-writer-1.1.3-ja_font_patch-20060516/pdf-writer-1.1.3-ja_font_patch-20060516.diff

コントローラに
def listpdf
gen_pdf
redirect_to("#{@request.relative_url_root}/pdf/hello.pdf")
end

private
def gen_pdf
_p = PDF::Writer.new
# _p.select_font 'Ryumin-Light', 'EUC-H'
_p.select_font 'GothicBBB-Medium', 'EUC-H'
_p.text NKF.nkf('-e -m0', "テストです"), :font_size => 72, :justification => :center
_p.save_as("public/pdf/hello.pdf")
end
こんな感じでPDF出力OK。

使ってみて…。
日本語だと、文字が重なってしまう不具合があった。コードの関係で、前の文字と同じ位置に表示してしまうようである。
http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-list/43480?43430-43644
で、$KCODE指定で直るとあったが、ダメでした。
…なので、却下。

Rfpdf
Rfpdfを入れてみた。
ruby script/plugin install http://rfpdf.googlecode.com/svn/rfpdf

プログラムはこんな感じ
pdf = FPDF.new
pdf.extend(PDF_Japanese)
pdf.AddSJISFont();
pdf.AddPage();
pdf.SetFont('SJIS',’’,18);
icSJIS = Iconv.new('SJIS', 'UTF-8')
pdf.Write(15, icSJIS.iconv("発表します表"))
send_data pdf.Output, :filename => "public/pdf/test.pdf", :type => "application/pdf"

「表」という文字のSJISコードで不具合出るので、
lib/rfpdf/fpdf.rb内の
- txt.gsub!('¥¥', '¥¥¥¥')

+ txt.gsub!('¥¥', '¥¥¥¥¥¥')
(¥は半角です)
こうすると直る。

使ってみたが…。
Cellメソッドはあるが、これで表とかは難しいかな。
無料で簡単な日本語PDF出力させるならこれでOK。

PDFlib
PDFlibのHPから落としてきたRuby用のtarを解凍。
# ruby -e "puts $:"
で、他のライブラリが入ってる所と同じ場所にPDFlib.soをコピー。
# cp PDFlib.so /usr/lib/ruby/1.8/i386-linux/

日本語対応はcmapというフォントを入れます(PDFlibのHPにあります)。
これも解凍してディレクトリごとコピー。
# cp -R /home/atsumi/PDFlib-CMap-1.0/resource/cmap/ .
パスとフォントとコードを指定すれば
require 'PDFlib'
p.set_parameter("SearchPath", "/usr/lib/ruby/1.8/i386-linux/cmap")
p.set_parameter("textformat", "utf8")
font = p.load_font("HeiseiMin-W3", "UniJIS-UCS2-H", "")
で、日本語を使える様になります。


◆携帯対応◆

Mobile on Rails
ruby script/plugin install mobile_on_rails
で、インストール。

cp -R app/views app/views_mobile
で携帯用表示ディレクトリを作成し、携帯からアクセス(ユーザーエージェントで判別してます)すれば、views_mobile側の表示をします。
後はviews_mobile内をShift_JISにしたりと、携帯用ページを作っていく。

QRコード
# yum install freetype
# yum install libpng
# yum install gd-devel
# gem install ruby-gd -- --build-flag --with-freetype

下準備が整った所で、
QRコードクラスライブラリ for Rubyからソースをいただきます。
# wget http://www.venus.dti.ne.jp/~swe/program/qrcode_rb0.50beta8.tar.gz
tarで展開した物を/libに入れ、qrcode.rbの10行目。パスを合わせる。
@path="#{RAILS_ROOT}/lib/qrcode_data"
qrcode.rbの600行目付近の4箇所。
Regexpメソッドの第2・3引数に、「, false, 'n'」追加。
文字コードの問題らしいです(これをやらないとqrcode_image_outメソッドで、premature end of regular expressionというエラーが出ます)。

後は、コントローラに
class QrcodeController < ApplicationController
def index
require 'qrcode_img'
@headers['Content-Type'] = 'image/png'
x = Qrcode_image.new
x.set_module_size(3)
img = x.qrcode_image_out('http://atom.blogdns.com', 'png')
render :text => img.pngStr, :layout => false
img.destroy
end
end
↑こんな感じで表示可能


Ruby on Rails 最初の一歩
管理人さんのブログ 2007-10-05 14:34:01

実際にプロジェクトを作ってみる
# rails testproject --database=postgresql

3種類のDBを作成します
$ createdb -O apache -E utf-8 testproject_development
$ createdb -O apache -E utf-8 testproject_test
$ createdb -O apache -E utf-8 testproject_production

DBアクセスの情報を設定
database.yml の
database:
username:
password:
encoding:
host: 127.0.0.1 こうすると後述するpg_hba.confと整合性が取れる(設定次第ですが…)
を合わせる。

データベースのテーブルを作るスクリプトを生成
# cd testproject
# ruby script/generate migration create_products
# vi db/migrate/001_create_products.rb
テーブルを作るスクリプトを書く。
def self.up
create_table(:products) do |table|
table.column(:testcolumn, :boolean)
end
end

def self.down
drop_table(:products)
end
↑コンテンツに合ったテーブルとカラムを設計します。

実際にDBテーブルを生成
# rake db:migrate
RailsからPostgresにアクセスできない時は
pg_hba.conf の内容を
#local all all ident sameuser

local all all md5
にしてPostgresを再起動。
原因は、RailsがPostgreSQLにアクセスする際にUNIX socketではなくTCP socketを利用していて,TCPを利用したアクセスではpasswordによるユーザ認証がPostgreSQLの設定で許可されていない かららしいです。
$psql -U apache testproject_development
でtableが生成されているのが確認できます。

DBテーブルに対する画面の生成
# ruby script/generate scaffold Product
間違えて作った時、削除するには(スペルミスとか…)
# ruby script/destroy scaffold Product

最後に
# rake
エラー出るのは、
test/functional/products_controller_test.rb
@first_id = products(:first).id

@first_id = Product.find(:first).id
にすればよし。

# ruby script/server でHTTPサーバを立ち上げて、
http://127.0.0.1:3000/products/list を見ると画面表示されています。


本5冊
管理人さんのブログ 2007-05-30 22:32:16
本5冊

Ruby始めま~す。
前にRuby on Rails本3冊読んだけど、まずは初心に戻って普通のRuby本読むとこから。チラッと見たけど、{}も;も無いのねぇ~。

新しい事覚えようとするこの瞬間って、ワクワクするな。


Ruby on Rails 本
管理人さんのブログ 2007-05-18 12:52:21
Ruby on Rails 本

3冊読破(まぁ飛ばし読みですが…)。
Ruby on Railsって、javascript(…というかAjax)がバリバリに使えるRubyのライブラリの集まりだと思ってたけど、全く違う物だった(勝手な思い込みだった)。
開発手法の仕組みみたいな物と言えばいいのかな、Railsの書き方でやっていけば綺麗なプログラムが簡単に早く出来ますよ、みたいな開発環境というかそういう物。
期待が大きかった分、ちょっと残念。
敢えて今のPHPを捨ててまで乗り換える事も無いなぁ~という感想(簡単と言っても使い方を覚えるにはそれなりに時間かかるわけだし…)。
しかも、使って見ないと分からない部分が多いけど、ギチギチの規約に縛られて細かい部分に手を出しにくそぉだなぁ~ってのもあった。
そんなわけで、Railsはいいや(惜しい部分もあるけど…)。

追記
…と書いたが、仕事でRuby使う事になりそぉな雰囲気。
仕事の時間使ってRuby覚えられるなら話は別!楽しくなってきたっ!


<< 2018年11月
2018年11月17日(土)
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

 最近の書き込み

SMTP
  <2016-04-06 12:03:21>
S.M.A.R.T.
  <2015-05-07 08:03:36>
POP
  <2015-04-21 11:33:37>
Linuxコマンド
  <2015-04-21 11:03:04>
アルバートオデッセイ
  <2014-08-04 23:12:12>
トイレ
  <2014-01-31 08:58:16>
(*)調光スイッチ
  <2013-09-30 10:46:11>
(*)調光スイッチ
  <2013-09-20 01:26:34>
(*)調光スイッチ
  <2013-09-17 12:21:11>
(*)調光スイッチ
  <2013-09-15 20:13:59>


 カテゴリー

おでかけ(83)
サッカー(45)
旅(45)
DIY(43)
食べ物(39)
映画(36)
家(35)
季節(34)
健康(32)
地元(29)
本(29)
家族(29)
モバイル(23)
生物(23)
学校(22)
家電(21)
ドラマ(21)
風景(18)
Web(18)
PCハード(17)
通勤(16)
ゲーム(16)
Winアプリ(15)
ブログ(14)
Linux(13)
飲み物(13)
自転車(13)
ゴルフ(11)
ブラウザ(11)
ネットワーク(10)
javascript(10)
足技(9)
php(9)
会社(8)
感銘映像(8)
税金(6)
空想(5)
VMware(5)
Ruby(4)
 ・ Ruby on Rails インストール
 ・ Ruby on Rails 最初の一歩
 ・ 本5冊
 ・ Ruby on Rails 本
データベース(3)
perl(1)