urlのidについて

Railscasts - Model Name in URL
より


railsのurlは通常「model/id」ってなってると思う。
このidは変更可能なんですって。
知らんかった。


railscastsのurlもこの方式でやってるんだ。
http://railscasts.com/episodes/63-model-name-in-url

やりかた

to_paramをoverrideするだけ。

# product.rb
def to_param
  "#{id}-#{permalink}"
end

# controller
@product = Product.find(params[:id])


id以外でやる場合は

# product.rb
def to_param
  permalink
end

# controller
@product = Product.find_by_permalink(params[:id])

やってみた

追記

ちょっとうれしい。


画像をアップロードするのがhatenaグループからだと
今日の一枚しかアップロードできなくなってる。
ん〜、rubyistさびれまくってるし、移転考えようかな。