タグ

ブックマーク / tnakamura.hatenablog.com (10)

  • モデル間のアソシエーションの情報を取得する方法 - present

    belongs_to や has_many で宣言した、 モデル間のアソシエーションの情報を取得するには、 ActionRecord::Reflection の reflect_on_all_associations メソッドを使えばいい。 ActiveRecord::Base は ActiveRecord::Reflection を include しているので、 モデルのクラスメソッドとしてすぐ使える。 # 全部 Task.reflect_on_all_associations # belongs_to だけ Task.reflect_on_all_associations(:belongs_to) # has_many だけ Task.reflect_on_all_associations(:has_many) 1 件だけ取得する reflect_on_association なんて

    モデル間のアソシエーションの情報を取得する方法 - present
  • Backbone.js と比較しながら Knockout.js を試してみた - present

    Backbone.js を試したから Knockout.js にも挑戦 JavaScript のクライアント MVC フレームワークは Backbone.js でいこうと思っていたんですが、Knockout.js が Ver 2.0 でかなり機能追加されて、ちょっと心変わり。もともと Knockout.js のデータバインディング機能に興味を持っていたところに、テンプレート機能が追加されて、試してみたくなりました。 念のため説明すると、Knockout.js は、.NET 開発者にはお馴染みの、データバインディングや MVVM パターンが特徴のフレームワークです。 Knockout : Home ちなみに、Backbone.js の記事はこちら。 作って覚える Backbone.js - present 作って覚える Backbone.js (2) Router 編 - present T

    Backbone.js と比較しながら Knockout.js を試してみた - present
  • jquery-mockjax 使えよ色々と捗るぞ - present

    jQuery や Backbone.js で UI を開発していて面倒なのが、サーバー側の API を呼び出す部分の実装です。呼び出したい API が既に実装されていないと、細かいところまで作り込めません。 あと、上手く動かなかったときも面倒です。原因がクライアント側ならすぐ直せますが、サーバー側だった場合、サーバー側のコードを修正して、テストまでしないといけません。効率悪いですよね。 できれば、クライアント側の開発はクライアント側だけで完結したい。さらに欲を言えば、最終的にサーバー側の API を呼び出すように修正するとき、出来るだけ少ない修正で済むようにしたい。 API 呼び出しを抽象化してダミーの処理と差し替えたり、jQuery.ajax を上書きしたり、色々工夫して最後に行き着いたのが『jquery-mockjax』。 appendto/jquery-mockjax · GitHu

    jquery-mockjax 使えよ色々と捗るぞ - present
  • Pjax に挑戦したら思っていた以上に苦労した話 - present

    GitHub が採用している、非同期でぬるぬる動く画面遷移、これ pushState と Ajax を組み合わせたテクニックで実現されているんですね。その名も Pjax。 HTML5 の history.pushState を使うからブラウザの履歴にも対応でき、しかも URL がキレイ。Pjax についての詳細な説明は下記のエントリが参考になりました。 pjax こそが pushState + Ajax の命 - punitan (a.k.a. punytan) のメモ Pjax 始まったな。 |i \      |.| ト\   /| ト | トヽ   / | | ト | | トヽ\/| | | ト    / | | | ト\≧三ミゞ=イ/ ム彡''´ ̄ ̄    ̄ ヽ{__.. /             V´ ノ  __          ', ,. == y ̄, __、\_   

    Pjax に挑戦したら思っていた以上に苦労した話 - present
    bojovs
    bojovs 2011/08/26
  • Kay の Form を使った RESTful API でのリクエストチェック方法 - present

    Google App Engine + Kay Framework で RESTful な Web API を作成するとき、データの更新は HTTP メソッドの PUT を使っています。PUT では、更新に必要なデータがリクエストのボディで渡されてきます。データは JSON 形式を使うことが多いです。 リクエストを受け取ったら、ボディから JSON を取り出します。実際は dict ですけど。この dict、値のほとんどが文字列なので、Integer や Boolean への変換が面倒なことこの上ないです。 そこで閃きました。Kay の Form を使えばいいんじゃないか、と。Form は画面に表示しませんが、パラメータの検証機能と、文字列から適切な型への変換機能は使えそうです。 import simplejson from google.appengine.ext import db f

    Kay の Form を使った RESTful API でのリクエストチェック方法 - present
  • Kay Framework で認証に Twitter の OAuth を使う方法 - present

    Kay Framework は認証機能を提供しています 認証方法も多様で、Google アカウントを使った認証だけでなく、データストア認証*1や OpenID、さらには OAuth まで利用できます。 認証方法は Kay の認証ミドルウェア用バックエンドとして提供されています 簡単に言うと、Kay の認証機能を拡張するプラグインみたいなものです。そのため、設定をちょっと記述するだけで認証方法を変更できます。 今回は Twitter の OAuth 認証を使う方法をご紹介 TwitterGoogle App Engine アプリを登録 下記のページにアクセスして、作成中(予定?)のアプリを登録します。 http://twitter.com/apps アプリ情報は適当な内容を入力して下さい。登録が成功すると、ConsumerKey と ConsumerKeySecret が発行されるので

    Kay Framework で認証に Twitter の OAuth を使う方法 - present
  • Kay Framework でログイン必須のビューを作る方法 - present

    Kay チュートリアルでも紹介されていますが、ログイン必須のビューを実装するなら、kay.auth.decorators.login_required デコレーターを使うのが手っ取り早いです。 from kay.auth.decorators import login_required @login_required def index(request): return render_to_response('myapp/index.html', {'message': _('Hello')}) ただ、このデコレーターはメソッドとして実装したビューにのみ対応していて、クラスとして実装したビューには対応していません。残念。ビューをクラスで実装している場合どうすれば…。 仕方ないので、BaseHandler 派生クラス用の login_required デコレータを自作して使っています。 fr

    Kay Framework でログイン必須のビューを作る方法 - present
    bojovs
    bojovs 2010/08/09
  • はじめてのKay Framework - present

    はじめに Google App Engine(以下 GAE) アプリの開発スピードを上げるために、Kay Framework を導入することにしました。 ただ、導入に思いのほか時間がかかってしまったので、手順をメモしておきます。誰かの役に立てば幸いです。 今回試した環境は次の通り。 Windows7 Windows Vista Windows XP Windows のみ。Mac は持ってないので試せません。 Python 2.5 のインストール python.org から 2.5 系の最新版を入手して、インストールします。 Python 2.5.5 インストール先は、デフォルトの C:\Python25 のままでいいです。 環境変数の PATH に、Python2.5 のインストールフォルダを追加するのを忘れずに。 Google App Engine SDK for Python をインス

    はじめてのKay Framework - present
  • 参考になりそうなオープンソースのGAEアプリ - present

    GAE アプリを開発しているけど、Python と GAE の両方とも初心者なので、どう実装したらいいのか迷う。そこで、「オープンソースのGAE向けアプリを参考にすればいいじゃないか」と考え、ネットで探してみた。 kay-framework - A web framework made specifically for Google App Engine - Google Project Hosting GAE に特化して開発された Python フレームワーク。 アプリの開発に使ってもいいし、オレオレフレームワーク開発の参考にするのもアリ。 google-app-engine-oil - Yet another web framework on App Engine - Google Project Hosting Ruby on Rails を意識して作られた GAE/Python

    参考になりそうなオープンソースのGAEアプリ - present
  • GAE/JRuby がすごく速くなっている件 - present

    RubyGoogle App Engine 用アプリを開発できる「appengine-jruby」っていう gem があるんですが、これを久しぶりに更新したら、すごく速くなっていて驚きました! 何が速くなったかっていうと、初回ロードがすごく速くなっています。以前は表示されるまでに30秒以上待たされていたのが、数秒で表示されるようになりました。感激。 調べたところ、config.ru にその秘密があるようです。 AppEngine::Rack.configure_app( :application => "application-id", :precompilation_enabled => true, # ここに注目!! :version => "1") precompilation_enabled は JRuby アプリのロード時間を短縮するために追加された設定みたい。JRuby

    GAE/JRuby がすごく速くなっている件 - present
  • 1