今週のrailscasts - Subdomains in Rails 3
Railscasts - Subdomains in Rails 3を見て。Rails3になって少しだけsubdomain対応が入ったので、それを拡張してsubdomain-fuとか使わなくても良くするという話。どうせなら完全にRails3側で対応してくれたら楽なのになあ。
ローカルでサブドメインを含むwebサービスを開発する時に使えるtips
hostsファイルにはワイルドカード的な記述が出来ないので、サブドメインを使ったwebサービスをローカルで開発するには必要なだけhostsに記述するか、ローカルにDNSをたてたりする必要があった(僕はローカルDNS派)。
lvh.me というドメインが 127.0.0.1 に紐づけられているらしく、これを開発用のURLにすれば簡単にローカルでサブドメインを使ったwebサービスを開発できるみたい。
request.subdomain
request.subdomainでsubdomainを使える。
request.domain(2) request.subdomain(2)
のように、引数に数値を入れて.の数を調節できる。
ルーティング
rails3では constraints にsubdomainを指定することが出来るようになった。railscastsではconstraintsの引数にsubdomain処理用のクラスを作って割り当てていた。
constraints(Subdomain) do #... end
ルーティングについては前にメモってた。でも上記のような書き方は初見。newいらないのか。
url_for
ルーティング側にはsubdomainが使えるのになぜかurl_for側ではsubdomainに対応していないので、railscastsではurl_forを上書きしてsubdomain_fuっぽくできるようにうまいことしていた。