merb

速報: Merb と Rails が統合

悪い冗談としか思えないんだけど、Merb と Rails が統合されるらしい。 Merb gets merged into Rails 3! by DHH (Rails 作者) Rails And Merb Merge by Yehuda Katz (Merb 主任開発者) Rails and Merb core team working together on their next release by …

Merb 1.0.6.1 リリース

Merb 1.0.6.1 がリリースされました。1.0.5 が出て、すぐに 1.0.6 が出て、さらに 1.0.6.1 が出たそうです。

Extlib は DataMapper 由来

しかしながら、extlib という名前は一般的すぎていささか池沼な香りがするし、せめて merb-extlib にして欲しいと思うのが人情であるが、実際は両方の gem が存在する。なるほど、いよいよ自分の愚かさに気付いて、extlib -> merb-extlib に変名したのかと思…

MerbDay の動画

MerbDay というイベントが先日アトランタであったらしい。その動画が公開されてる。なんかやたら解像度が高くて、プレゼン画面の文字がクッキリハッキリみえる。どうしてこんなに解像度が高いのだろうか。ちなみに、動画のリスト。 Keynote (by Yehuda Katz,…

DataMapper で「Unknown column 'XXX_id' in 'field list'」というエラーが出たとき

たとえば Book : Author が Many to Many の関係だったとする。このとき「Book.first.authors」を実行すると、「Unknown column 'author_id' in 'field list'」というエラーが出た。 $ merb -i irb> Book.first.authors ~ SELECT `id`, `title`, `author_id`…

DataMapper での 1+N 問題

DataMapper では、いわゆる 1+N 問題は起こらないと言われている。たとえば次のような例。ActiveRecord なら 1+N コの SELECT 文が発行されるけど、DataMapper では 1+1 コの SELECT 文だけを発行する。 $ merb -i irb> IRB.conf[:MAIN_CONTEXT].echo = fals…

DataMapper が予想以上に賢すぎる

なんか DataMapper が予想以上に賢かったので紹介してみる。 $ merb -i ### IRB のエコーバックをオフにする irb> %w[a] # エコーバックされる => ["a"] irb> IRB.conf[:MAIN_CONTEXT].echo = false irb> %w[a] # エコーバックされないことを確認 ### すべて…

書籍『Merb in Action』の第 1 章が無料配布中

共著者に Merb 開発者が含まれている書籍『Merb in Action』の "Section 1. Introducing Merb" が PDF で無料ダウンロードできる。 といっても Merb の概要を紹介しているだけなので、別に読まなくてもいいかも。書籍自体まだ 1/3 くらいしか書かれてなくて…

1 つのフォームで複数のモデルオブジェクトを使う

1 つのフォームで複数のモデルオブジェクトを使いたい場合、Merb では「text_field :mail」のようには書けず、「text_field :name=>"user[#{user.id}][mail]"」のように手動で name 属性を指定しないといけない。たとえば: <% @users.each do |user| %> <% …

「FATAL: Could not bind to 4000」と言われて Merb が起動できない場合

症状:「FATAL: Could not bind to 4000」と言われて、Merb が起動できない。原因:すでに別の Merb が起動しているか、前に起動したときの worker process が終了されていない。対処:4000 番ポートを使っている process を lsof で見つけ、kill する。 $ m…

Merb のバージョンを更新すると起動しない場合

Merb を新しいバージョンにして起動すると、次のようなエラーがでる場合がある。 ~ FATAL: The gem merb-action-args (= 1.0.2, runtime), [] was not foundこの場合は、config/dependencies.rb に書かれてあるバージョンを書き換えてやるとよい。 merb_gems…

DataMapper で relation を使った検索

ドキュメントに載ってないことを補足していこうシリーズ。DataMapper で、たとえば次のようなモデルクラスがあるとする。 ### 従業員 class Employee include DataMapper::Resource property :id, Serial property :name, String, :nullable => false proper…

DataMapper 0.9.8 がリリースされてあのバグが修正された

DataMapper 0.9.8 がリリースされました。 DataMapper 0.9.8 and Extlib 0.9.9 Released DataMapper 0.9.8 and Extlib 0.9.9 are out! Lazy loading が有効になっている場合にデータを更新しても保存されなかったバグが修正されました。もう :lazy => false …

DataMapper で関連オブジェクトを更新する方法

DataMapper で関連オブジェクトを更新する方法。 ## 部署オブジェクトを作成 dept = Department.create!(:name => "Sales") ## それを使って従業員オブジェクトを作成 emp1 = Employee.create!(:name => "John", :department => dept) emp2 = Employee.creat…

オープンソースで Merb の本を書いてみるプロジェクトのお知らせ

Merb コアチームメンバーの Matt Aimonetti が、オープンソースで Merb の本を書くことを発表しました。すでにある Life on the edge with Merb, DataMapper & RSpec に書き足すのではなく、スクラッチから書くことに決定しています。プロジェクトは始まった…

DataMapper での一意制約の指定方法

DataMapper で一意制約 (unique constraint) をつける方法がドキュメントに見つからないと思った人はおらんかー? DataMapper では、一意制約には :unique_index オプションをつければよい。 class Department include DataMapper::Resource property :id, S…

radio_button() で :checked => false が checked="false" になる

Merb では、radio_button() で :checked => false を指定すると checked="false" になってしまうので悲しい。 ## radio_button() では :checked=>false がサポートされない <%= radio_button :name=>"foo", :value=>"Y", :checked=>false %> #=> <input type="radio" name="foo" value="Y" checked="false" /> ## check_b…

DataMapper で Lazy loading していると UPDATE 文が実行されない

なんか DataMapper (0.9.7) でいやらしいバグに遭遇してしまった。 モデルオブジェクトを変更して save() を呼んでも、UPDATE 文が実行されない。 いろいろ試したところ、どうも lazy loading になっていると、UPDATE 文が実行されないようだ。 再現手順:ま…

Merb 1.0.0 でエラー

Merb 1.0.0 を新たにインストールした環境で merb を起動すると、こんなエラーが出た。 /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.6/lib/dm-core/adapters/data_objects_adapter.rb:137:in `initialize': wrong number of arguments (8 for 1) (Argume…

Merb 1.0 リリース記念に、Merb がどんだけすごいのかを紹介した海外の記事を翻訳してみた

まつもとさんもお気に入りという Merb フレームワークの 1.0.0 がリリースされた。これは Rails 一辺倒だった時代から、複数のフレームワークが入り乱れる時代への切り替わりを告げる、大変重要なリリースだと思っている。 しかし日本のニュースサイトでは何…

Merb 1.0 RC2 release

Merb 1.0 のリリース候補 2 回目がリリースされた。 今回のリリースによって、Windows 環境で動作するようになった。 1.0 正式リリースは 11 月はじめを予定しているそうです。正式リリースのあかつきには、PC Web とかで紹介してくれんかのう。

Merb 1.0 RC1 Release

Alternative Rails として期待を集めている Merb のバージョン 1.0 候補がリリースされた。インストールする前に、まず RubyGems 1.2 またはそれ以降のバージョンをインストールすること。古いバージョンだとインストールに失敗する可能性がある。RubyGems 1…