タグ

ブックマーク / blog.willnet.in (28)

  • おもしろwebサービス開発日記

    以前のエントリで、スレッドローカル変数とファイバーローカル変数について解説しました。このエントリはその続きになります。 ファイバーストレージとは スレッドローカル変数やファイバーローカル変数を使うと複数(スレッド|ファイバー)環境で固有の値を持つことができて便利です。利用例としてはActiveSupport::CurrentAttributesなどがあります。 しかし、(スレッド|ファイバー)ごとに固有の値を持つことで不便を感じるケースがあります。例えばRailsなどでリクエストを受け付けている最中に別の(スレッド|ファイバー)を作り、その中で外部APIを叩くとします。このときに外部APIを叩く(スレッド|ファイバー)からリクエストを処理する(スレッド|ファイバー)で設定した(スレッド|ファイバー)ローカル変数を参照することはできません。これは不便ですね。 この問題を解決したのがRuby3

    おもしろwebサービス開発日記
  • Rails 3 のルーティング定義について - おもしろwebサービス開発日記

    Rails 3のルーティングで気になったところについて。いつものメモです。あくまで気になったところなので全部網羅しているわけではありません。あしからず。 基map.connect から match メソッドに変更。オプションも下記のように変更。 # Rails 2 map.connect 'products/:id', :controller => 'products', :action => 'view' # Rails 3 match 'products/:id', :to => 'catalog#view' # :to は省略可能 match "/account" => "account#index" # :controller/:action 形式であればさらに省略可能 match "account/overview" Named Routes asオプションで指定するように

    Rails 3 のルーティング定義について - おもしろwebサービス開発日記
  • passegner のドキュメントを読む - おもしろwebサービス開発日記

    気になったところだけのメモです。nginx用。 Phusion Passenger users guide, Nginx version サブURIにデプロイする 例えば http://example.com/rails をアプリのトップディレクトリにしたい場合で、 root /websites/phusion;な時。 ln -s /webapps/mycook/public /websites/phusion/rails のようにシンボリックリンクを張って、 passenger_base_uri /rails; を server ディレクティブ内に設定するとおk。 passenger_log_level nginxのエラーログファイルにどこまでの情報を書くかを決める設定。 0 error と warning のみ 1 最重要なデバッグ用情報を表示。アドミニストレータ用。 2 デバッグ情報

    passegner のドキュメントを読む - おもしろwebサービス開発日記
  • instance_of?とis_a?の違いについて - おもしろwebサービス開発日記

    これまであんまり厳格に区別してなかったので。メモ。 instance_of? foo.instance_of? Hoge fooがHogeクラスのインスタンスの時真 fooがHogeクラスのサブクラスのインスタンスのとき真 is_a? foo.is_a? Hoge fooがHogeクラスのインスタンスの時真 fooがHogeクラスのサブクラスのインスタンスのとき真 fooがHogeモジュールをインクルードしたクラスのインスタンスの時真 fooがHogeモジュールをインクルードしたクラスのサブクラスのインスタンスのとき真 まとめ is_a?はinstance_of?の違いはモジュールを含むか含まないか。

    instance_of?とis_a?の違いについて - おもしろwebサービス開発日記
  • Railsでログイン状態を保持する方法 - おもしろwebサービス開発日記

    (6/20 大幅に加筆修正を行いました)Railsのセッションの有効期限は、デフォルトだとブラウザが終了するまでです。これだと、ログインページによくある「ログイン状態を保持する」チェックボックスが作れません。というわけで、やり方を調べてみたら、よさそうな情報がのっているサイトを見つけたので英語の勉強がてら概要を意訳してみたいと思います。 HowtoChangeSessionOptions in Ruby on Rails すべてのセッションに対して一律に有効期限を作りたい場合 environment.rbに下記のように設定します。 ActionController::Base.session_options[:session_expires] = Time.local(2009,"jan") ここでは、上記のように絶対時間を入れます。Time.now + 1.weekのようにするのはうまく

    Railsでログイン状態を保持する方法 - おもしろwebサービス開発日記
  • emacsとRinariで快適Rails開発! - おもしろwebサービス開発日記

    emacsでRails開発をする際、emacs-railsを使っている方が多いと思います。emacs-railsはとても便利なelispなのですが、最近は更新頻度が低く、rhtmlhtml.erbの対応も一部されていなかったりします。あとRspecの対応もイマイチ。emacs使いの人たちは一体どうやってRails開発しているのでしょうか? そこでRinariですよ Rails On Emacs | Google グループを見ると最近は"Rinari"の話題で持ち切りなようです。Rinariはemacs-railsとは違いコア部分を小さく保って、プラグインで拡張していくタイプのelispです。 Rinari: Ruby on Rails Minor Mode for Emacs 基的には上記に全部書いてあるのですが、整理する意味でまとめてみます。 コア部分のインストール まず、gitでダ

    emacsとRinariで快適Rails開発! - おもしろwebサービス開発日記
  • railsのクッキーとセッションについてまとめ - おもしろwebサービス開発日記

    こないだ、よくわからんので今度調べると書いたところについて。 CSRFの対応について、rails使いが知っておくべきこと - おもしろWEBサービス開発日記 まずクッキーとセッションの違いから。自分の認識はこんな感じ クッキーもセッションも、ブラウザにデータを保存させる仕組み。 クッキーはデータをそのままブラウザに保存させる。 セッションはセッションIDをブラウザに保存させ、データはサーバ側が保持する。サーバはセッションIDをキーにしてデータを取り出す。 railsでクッキーを設定するには railsでは、クッキーは基的に使わないと思ってますが、一応使い方をメモ。 cookies[:hoge] = { :value => "value", :expires => "30.days.from_now", :path => "/store", :domain => "www.example.

    railsのクッキーとセッションについてまとめ - おもしろwebサービス開発日記
  • CSRFの対応について、rails使いが知っておくべきこと - おもしろwebサービス開発日記

    以前、CSRFについてのエントリを書きました。 CSRFについて - おもしろWEBサービス開発日記 上記エントリではCSRFの概念について書きましたが、もう少しつっこんで調べる必要が出てきました。調べたことを書いてゆきます。 基礎 application.rb(ないし適当なController)にprotect_from_forgeryメソッドを定義すれば、railsが自動的にCSRF対策をしてくれます。というか、デフォルトでapplication.rbに下記のように書いてあるので、特に何もせずともCSRF対策はバッチリなのです。 protect_from_forgery # :secret => '8ff3ed33f86a431662d8dfe255acdb4a' railsは、get以外の動詞のリンクに、authenticity_tokenというパラメータを自動的に付け加えます。ge

    CSRFの対応について、rails使いが知っておくべきこと - おもしろwebサービス開発日記