追記: すみません、join時だけでなく通常のfindでも使えるようです。
関連するモデルからデータを引くときに、↓のように:joinsオプションを使うことはよくあります。
1
2
3
4
5
6
7
8
9
10
1 [...]
validates_length_of では、:minimum, :maximumなどのオプションによって入力最小/最大文字数を定義することができます。いままでは単純に文字数のカウントを行っているだけでしたが、今回追加さ [...]
# またまた遅れてごめんなさい。。。
今回の機能は、render :partial で :collection を使った場合に好きな変数名を渡せるものです。
恥ずかしながらいままで collection を知らなかったの [...]
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 よ [...]