Linux-Java-Memo.com
メモ: railsでのセッション管理について
railsでは2.0以降、セッションはデフォルトでcookie内にすべて格納するらしい。
これだと4kバイトの容量制限はあるが、セッションタイムアウトとか、負荷分散時のセッション情報の共有とか気にしなくてよい。
DBストアも選択出来る。これだと容量制限も気にしなくてよくなる。性能はどうなんだろうか。
Posted at 01:30午後 11 26, 2010 by pochi in Ruby |
rails 3 メモ: productionのサーバでpublicが見えない
Rails 3では、rails sコマンドでproduction環境のサーバを起動すると、public以下のファイルやディレクトリがサーバによって提供されなくなっている。config/environments/production.rbのconfig.serve_static_assetsをtrueにすることで解決する。
Passenger経由であれば、staticなファイルはApache等が提供してくれる部分なので問題なし。
Posted at 05:28午後 11 15, 2010 by pochi in Ruby |
rails 注意事項いろいろ
- アプリケーション名とモデル名はダブるとエラー?
- アプリケーション名に_testとか入れると、TestUnitのクラス名と衝突してエラーとなる。
Posted at 07:02午後 11 02, 2010 by pochi in Ruby |
rails 3 で mysqlを使ってみる
Ubuntu 9.10環境でrails3お試し中。mysqlにつないでみる。
rails new hoge --database=mysql
config/database.ymlをみると、gem install mysql2でdriverを入れろと書いてあるが、そのまま実行するとエラーとなる。 libmysqlclient15-dev パッケージが必要(Ubuntu 9.10の場合)。
aptitude install libmysqlclient15-dev
sudo gem1.8 install mysql2
今度はうまくいった。
database.ymlでencoding: eucjpmsにしてみる。→ 画面表示で文字化け発生。ActiveRecord::Baseの説明に従い、文字化けするカラムのaccessorをオーバーライトして文字変換させたところうまく動いた。
Posted at 05:46午後 11 02, 2010 by pochi in Ruby |
Ruby on Rails 3
WEB+DB PRESS Vol.58
を買い、Rails 3勉強中。久しぶりに新しいもんを学んでます。
Ajax化が簡単に出来るのはすごいんだけど、データとして返ってくるJavaScriptコードがバグっててもなんのエラー表示もされないな。デバッグ厳しそう。
例えば test.js.erb とかに
$('posts').update(
'<%= escape_javascript(render @posts) %>'
);
とか書くのだけど、ここにバグがあっても、動かないだけで、どこが悪いのかよくわかりません。
Railsなら、ここにそんなに複雑なコードを書くことは無い、ってことなのかな。
2010.11.02 追記。
なるほど。RJSを使えってことですね。
Posted at 05:49午後 10 27, 2010 by pochi in Ruby |
RubyでXML処理するにはLibXML-Rubyが良い
RubyでXML処理するにはREXMLが簡単そうでいいかと思っていたのだが(標準で組み込まれているし)、なぜか外部エンティティを読み込んでくれないみたい。調べてみたが対応していないようでよくわからなかった。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hoge SYSTEM "hoge.dtd">
.... <!-- REXMLだと、hoge.dtdに記載してある情報を反映してくれない -->
仕方がないのでREXMLはあきらめて、LibXML-Rubyを使ってみた。こちらもデフォルトでは外部エンティティを読み込んでくれないが、API Docsから辿っていくとXML::Parser::Optionsで指定すれば読み込んでくれることがわかった。
doc = XML::Document.file( "hoge.xml", :options => XML::Parser::Options::NOENT|XML::Parser::Options::DTDLOAD );このように指定すればちゃんと外部エンティティを読み込んでくれました。XPath指定など機能的にもREXMLを同じような感じで使いやすくて良いです。
Posted at 07:30午後 5 20, 2010 by pochi in Ruby |
Debian/lennyで Rubyの Amrita2を動かす
- 現時点でのAmrita2の最新版は2.0.2だが、仕様が大きく変わっており、修正困難だったため、元々利用している1.9.6を動作させた。
- 更に現時点でAmrita2のWebサイトにはアクセス出来なくなっている。2.0.2はRubyForgeからダウンロードした。
- Amrita2が呼んでいるREXMLライブラリがアップデートされており、Amrita2 1.9.6だと
REXML::Text.write is deprecated. See REXML::Formatters
と警告出力される。
- deprecateされた為か、REXMLのelement.rbにバグがあるので修正必要。修正箇所は以下。
*** element.rb.orig
--- element.rb
***************
*** 671,677 ****
# out = ''
# doc.write( out ) #-> doc is written to the string 'out'
# doc.write( $stdout ) #-> doc written to the console
! def write(writer=$stdout, indent=-1, transitive=false, ie_hack=false)
Kernel.warn("#{self.class.name}.write is deprecated. See REXML::Formatters")
formatter = if indent > -1
if transitive
--- 671,677 ----
# out = ''
# doc.write( out ) #-> doc is written to the string 'out'
# doc.write( $stdout ) #-> doc written to the console
! def write(output=$stdout, indent=-1, transitive=false, ie_hack=false)
Kernel.warn("#{self.class.name}.write is deprecated. See REXML::Formatters")
formatter = if indent > -1
if transitive
参照サイト http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/32141
- amrita:typeオプションを指定すると、例外が発生するようになった。
Undefined prefix amrita found (REXML::UndefinedNamespaceException)
これは、htmlタグにxmlns:amrita=http://../ でnamespaceを定義してみたところ解決。
Posted at 05:16午後 5 11, 2009 by pochi in Ruby |
Amrita2
Amrita2 - Ruby用 XML/HTML テンプレートライブラリーを使ってみました。
Javaのvelocityと比べても非常にシンプルです。条件分岐とかループの処理が
無く、全てデータ形式で判断する? のは慣れないととまどいそうですが、ruby
なら便利なのかな。
Posted at 04:20午後 9 08, 2006 by pochi in Ruby |
soap4r
ruby1.8の方もやっと解決。 soap4rのライブラリに含まれる、wsdl2rubyを使って生成したクラスを 使えば簡単なんですね。ここまでたどり着くのにえらい時間がかかった...。
Posted at 08:13午後 8 25, 2006 by pochi in Ruby |
Rubyの正規表現
今ごろですが、
ruby 1.8と1.6では正規表現のロジックが異なるのですね。
ruby 1.6では動いていたコード
が1.8にしたら変換されない。1.8では、
str.gsub!("-","/");
のように記述しないとダメなんですね。
str.gsub!(/-/,"/");
コード全部見直さないと...。
Posted at 02:05午後 8 23, 2006 by pochi in Ruby |
soap4r
ruby1.8にしたら、1.6で使っていたコードは動かないんですね?
Posted at 12:08午後 8 09, 2006 by pochi in Ruby | 投稿されたコメント[0]
はじめようRuby on Rails
アスキー (2006/07/03)
Posted at 12:00午前 7 03, 2006 by pochi in Ruby | 投稿されたコメント[0]
ライド・オン・Rails
Ruby on Railsの実践的解説本、とのこと。
ソフトバンククリエイティブ (2006/06/30)
こちらは、"Lightweight Language"なフレームワーク紹介、ということでRuby on Railsも取り上げられています。
技術評論社 (2006/07/07)
Posted at 11:11午前 6 22, 2006 by pochi in Ruby | 投稿されたコメント[0]
RadRails
Railsの統合開発環境。Eclipseのプラグインとして動作する。
RadRails - A Ruby on Rails IDE
Posted at 06:22午後 4 26, 2006 by pochi in Ruby | 投稿されたコメント[0]
RubyでのSQLインジェクション対策
メモ。
- コンパイル済みSQLを使う。
Ruby DBIモジュールを利用すれば可能。 - 特殊文字をエスケープ処理する。
- ' → "
- " → ""
- % → \%
- _ → \_
- \ → \\
Posted at 04:28午後 2 28, 2006 by pochi in Ruby | 投稿されたコメント[0]


