

Rails2.0でscaffoldを行うと、HTMLと同じURL+.xmlでXMLの取得も行えます。リソースひとつだけ取得するのであればこのままでも大丈夫なのですが、たとえばuserとblogが1:nの関係で、userのXMLを取得する時に同時に複数のblogも取得したい場合どのようにすればよいのかわかりませんでした。
to_xmlを使わずテンプレートでがんばろうかなと思っていたところ、1年前のRyan’s Scrapsでまさにそのものな:includeオプションを見つけました。
1
2
3
4
5
6
7
@user = User.find(1)
@out = @user.to_xml(:include => :blogs)
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @out }
end
scaffold後に↑のようなソースになりますが、2行目でto_xmlのオプションに:includeを付与しておくと、
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="UTF-8"?>
<user>
<id type="integer">2</id>
<login>ホゲ</login>
~ 中略 ~
<blogs type="array">
<blog>
<created-at type="datetime">2008-06-10T15:06:14+09:00</created-at>
[...]
Rails 2.0.91 が使えるようになり、2.1 リリースも間近なようです(2.0.91などマイナーアップデートのものを利用したい場合はこちらを参照してください)。
今回の Edge Rails は、2.0.91 よ [...]
ちょっと前から Ryan’s Scraps の What’s New in Edge Rails シリーズを元にしたエントリを書きはじめました。
http://blog.poqu.org/cate [...]
Rails の migration は、データベースの履歴管理が簡単にできますが、migration が頻繁に起きる開発では、バージョン番号(002_create_users.rb の 002とか)がかぶってしまう場合が [...]
今回の機能は、Rails アプリで使われている gem の扱いを簡単にするものです。
利用している gem を environment.rb に宣言することにより、下記のようなことが可能になります。
各 gem のバー [...]