実行時にtemplateを切り替える

投稿者 nanki 2005-10-14 06:44:00 GMT

ユーザの権限などで、使用するテンプレートセットを変えたい場合、ActionController の中で、

class ApplicationController < ActionController::Base
  before_filter :authorize

  private
  def authorize
    return unless @member.guest?
    template_root = "#{RAILS_ROOT}/app/views/guest/"
    @template.base_path = template_root
  end
end

とやればいいみたい。

参考:

changing your ActionController template_root per request


finetype

投稿者 nanki 2005-10-08 06:19:00 GMT

日本語がきれい。

なプラグインを書いてみた。 タグでくくった文字が所望のフォントでレンダリングされる。

プレビューに反映されるので気持ちがいい。もう一丁!!
画鋲投げ

MarkupLanguageのタグというのは結局、名前付き引数で関数呼ぶのと変わらないから、こういうことをするのに非常に向いている。

仕組み上、画像を生成するタイミングは完全にサーバ側が握っているので、フォントデータが出回ってしまうこともないし、外部から任意の文字がレンダリングされることもない、フォントベンダーに優しい(?)設計となっている。・・・と思ったら、コメント欄でも使えてしまう。

現状の問題点

  • 打ち間違えると、履歴が全部画像キャッシュに残ってしまう。
  • コメント欄でも使えちゃう。