Rails勉強会@東京第40回
今日も何故か快晴.誰だ晴れ男は!天気がいいのに室内に籠もってる30名.いろいろ素晴らしいですね!
まとめと感想
はじめに
- 今日は懇親会が準備されているようです.
- 昨日のあれが無ければ・・・・
セッションネタ
JRuby on Google AppEngine
- Google AppEngine で Java が動くようになったので,JRuby 経由で Rails/Merb などを動かすことができる.
- gem などをアプリケーションに組み込んだ状態でデプロイする必要がある.
- Merb では thor コマンドで,Rails では rake で.
- Java のバージョンは MacBook は preinstalled で,Windows/Linux などでは Java 1.6 で.
- JRuby は http://github.com/jruby/jruby/tree/master から clone して build する.
- JRuby の環境一緒にアップしなくてはいけない.
- ファイルサイズの制約(10MB)があるので,それに収まるように必要なライブラリだけをアップするように.
- ファイル数1000の制限もある
- JRuby の環境一緒にアップしなくてはいけない.
- java -jar $JAVA_HOME/java/java-complete.jar -S irb などで
- Ruby と JRuby が同じ環境にあると混乱する可能性がある
- JRuby の jgem で入れた gem が入る場所など
- 同じ名前のコマンドがあるので,通常の Ruby が PATH で先に来るようにしないと普段使いに問題がある.
- JRuby で gem をインストールするときには http://wiki.jruby.org/wiki/Main_Page が参考になるらしい
- config/warble.rb
- config.gems = [...] に必要な gem を列挙しておけばいいみたい.
- GAEではスレッド使えない.
- .jar ファイルにパックして lib に配置することで,ファイル数の制限を回避
- jar cf test.jar /path/to/gems
- gem は --no-rdoc --no-ri をデフォルトの方がいいらしい
- ファイルの書き込み権限がないので,ログはログファイルではなく標準出力に出すように変更する必要がある.
- jar ファイルの中のファイルを load/require するときに,相対パスだと失敗するので,絶対パスに書き換えるパッチが必要.
% ant jar-complete % java -jar $JRUBY_HOME/lib/jruby-complete.jar -S irb irb(main):001:0>
% merb-gen app hello % warble config # vender tmp などを消す # 既存の lib からコピーする
まとめ
早すぎてわかってる人しかわからないセッションになった模様.一度やってみようと言うことですね.
About ActiveRecord 2.3
% rails nested-model % cd nested-model % script/generate scaffold blog title:string url:string % script/generate scaffold post blog:references title:string body:text
- nested_models のキモは :autosave オプション
- 関連する子クラスの save を親の save 時に自動的に実行してくれる
- i18n で子クラスの attribute が日本語化されない?
- errors の属性名が posts_body とかになってしまう.
- translation_ja.yml などを細工する必要がある
- errors の属性名が posts_body とかになってしまう.
- attr_accessible
- アクセスできる attribute を指定できる.
- ただし指定すると子クラスが見れなくなる.:post_attributes としなくてはならない.冗長すぎる?
- アクセスできる attribute を指定できる.
attr_accessible :title, :post_attributes
- attachment_fu で勝手に attr_accessible に追加されるので,nested-form だと子クラスを見れなくなってしまうので,はまるかも.
- default_scope は使わない方が吉
- named_scope とは違う実装なので
- はまりどころが多いので,lighthouse はずっと見ておくべきだと思った.