maeshimaの日記

メモ書きです

rails

railscasts - Search, Sort, Paginate with AJAX

テーブルのレコードの検索、ソート、ページネーションをAJAXでやる話。ASCIIcasts - “Episode 240 - Search, Sort, Paginate with AJAX”気になったところのメモ。 link_to のスマートな書き方 link_to title, params.merge(:sort => column, :direction => d…

英語っぽい読み方

前にrailscasts見てて気になったところのメモ route→らうと 404→フォーオーフォー みたいに言ってた

こないだのrailscasts

先々週くらいのもの。AcriveRecordのソースコードを読む話。何かデジャブだなーと思ったら下記のエントリと似てるんだった。 Rails3 の Arel を使った SQL 作成の流れ - takihiroの日記 気になった点 tapをうまく使ってた。 clone.tap { |r| r.group_values …

has_manyの :extend オプション

メモ。Rails2.3.8のドキュメントより。has_many のブロック中にメソッド定義することで、関連で使えるメソッドを追加できる。 class Account < ActiveRecord::Base has_many :people do def find_or_create_by_name(name) first_name, last_name = name.spli…

delegate

Rails2.3.8のドキュメントのざっくり意訳。 delegateの使い方 delegeteで指定したメソッドを、toで指定したオブジェクトに委譲する。 class Greeter < ActiveRecord::Base def hello() "hello" end def goodbye() "goodbye" end end class Foo < ActiveRecor…

deep_merge

ActiveSupportをincludeすると使える。再帰的なmerge。deep_merge!もある。 追記 上記の説明だけだとよく分からないので実行してみた。 ree-1.8.7-2010.01 > a = {:a => {:b => "c"}} => {:a=>{:b=>"c"}} ree-1.8.7-2010.01 > b = {:a => {:c => "d"}} => {:…

facebook_oauth

twitter_oauthと同じ作者が作ったfacebook用のgem。moomerman's facebook_oauth at master - GitHub Authorized request example twitter の oauth と同じような感じ。ただなぜか最初のうち 401 になった。アプリ設定のweb site→サイトURLを入れたらうまくい…

settingslogic

configatron 的なconfig値を設定する gem。binarylogic's settingslogic at master - GitHub README読んで気づいたconfigatronとの違い config値を扱うクラスを作る必要がある yamlファイル内にERBを埋め込むことが出来る 値の扱い方や、後付けでの値の設定…

特定のカラムをserializeしているときのfixture

DBに配列を入れたいとき、下記のようにmodelでserializeメソッドを使います。 serialize :hoge, Array serializeはyamlに変換してDBに格納するので、fixtureは hoge: - 1 - 2 - 3 のようにすればオッケー。

今週のrailscasts - Polling for Changes

Railscasts - Polling for Changesを見て。javascriptを使って、ブログのコメント欄を動的に更新する例。気になったところをメモ。 jquery-rails Rails 3 用のジェネレータ。 rails generate jquery:install とすると、 prototype.jsを消して、jquery.js や …

drubyメモ

druby使う時のメモ。 drubyのサーバプロセスはスレッドなのでmutex的な処理が必要になってくる drubyの引数/戻り値はMarshall.dumpされたオブジェクト。値渡し。 相手の知らないクラスのインスタンスは送れない(厳密には送れるけどDRbUnknownとかいうオブジ…

今週のrailscasts - Sortable Table Columns

Railscasts - Sortable Table Columnsを見て。スクラッチで table に出力されるレコードを sort する話。jsでajaxではなくて普通にクエリで sort する。正直あんまり目新しい要素はなかった。 下記のように injection 対策として ActiveRecord.column_names …

今週と先週のrailscasts - Upgrading to Rails 3

このあたりを見て。 Railscasts - Upgrading to Rails 3 Part 2 ASCIIcasts - “Episode 226 - Upgrading to Rails 3 Part 2” Railscasts - Upgrading to Rails 3 Part 3今週のrailscasts - Upgrading to Rails 3 Part 1 - maeshimaの日記の続き。やっぱり基…

openid_authenticationのREADME

rails's open_id_authentication at master - GitHub 一部意訳したメモ。 前提 openid_authentication は session を使う。代わりにファイルに格納することも出来る。ファイルは RAILS_ROOT/tmp/openids に格納される。でもファイル格納は単一のアプリサーバ…

bundlerのバグ?

bundler0.9.24で、Gemfileに gem "ruby-openid", :require => "openid"と書いたのだけど、どうもrequire 'openid'されていないようでエラー。controllerにrequire 'openid'としたら動いた。

Chapter 21 Cucumber with Rails

メモ。どうやらRspec本が14版になってChapterがずれたみたい。12版だとChapter 20。 序文 一度通ったシナリオはregression testsとして使えるというような文章があった。そもそもregression test ってなんだろ。→調べた。 プログラムを変更した際に、その変…

今週のrailscasts - Upgrading to Rails 3 Part 1

Railscasts - Upgrading to Rails 3 Part 1を見て。Rails 2 系から3にアップグレードする方法について。以前に自分でいろいろ調べてやり方を調べてメモってたけど、それと大体同じだった。Rails 2.3.5をRails 3.0にアップグレードする方法 - おもしろWEBサー…

sessionの期限をアクセス毎に変化させる

アクセス毎にsessionの期限を変化させるには、昔はなんかいろいろ大変だったような気がするんだけど、Rails 2.3 からは ActionController::Base.session_options[:expire_after] = 2.years のように expire_after オプションを使うとすぐ出来るみたいです。 …

今週のrailscasts - Controllers in Rails 3

Railscasts - Controllers in Rails 3 ASCIIcasts - “Episode 224 - Controllers in Rails 3”を見て。 filter_parameter_logging filter_parameter_logging の設定が application.rb に移行。 config.filter_parameters += [:password] のような設定方法にな…

RDocの基本的な書き方メモ

メモ Railsで使うRDoc生成用rakeコマンド rake doc:app rake doc:plugins 見出し #= #== #=== コメント #-- # RDoc的なコメント #++ リンク http://example.com/ のようなリンクは自動でリンクが張られる。 hoge[http://example.com/]のようにすると <a href="http://example.com/">hoge</a>の…

今週のrailscasts - Charts

Railscasts - Chartsを見て。javascriptの高機能なチャートプラグイン Highcharts をRails中で使う例について。見た感じとてもカスタマイズ性が高くてよさげ。他にもいくつかチャートプラグインを紹介していたので、チャートを使うときは参考にしたい。

Railsた2から3になった際のMetalの位置づけの変化について

ASCIIcasts - “Episode 150 - Rails Metal” ASCIIcasts - “Episode 222 - Rack in Rails 3”上記の二つのエントリを見て。Rails2と3ではMetalの位置づけがちょっと違っているような気がした。Rails2ではrailsでrackアプリを使うための機能として作られたけど…

今週のrailscasts - Rack in Rails 3

Railscasts - Rack in Rails 3を見て。Rails 3の routes.rb の root :to => "home#index" は root :to => HomeController.action(:index) と同じで、要するに全rackアプリにルーティングできる。なので rails3でルーティングして sinatra を動かす的なことも…

Chapter 25 Rails Controllers

Rails controller の spec の書き方について。 25.1 Controller Specs ModelName.new も疎結合のためにstubを実装したほうがいい。 mock_modelってなんだっけ -> new_record?やidなどの基本的なstubがついてるmock adding context specific examples 成功時…

cronの代換となるプラグインclockwork

RubyPulse :: RubyPulse Episode 0.42 - clockwork - A scheduler process to replace cron. - Adam Wigginsを見て。cronの代換となるらしいclockworkについて。 基本 普通のcronみたいな時間指定の実行に加えて、1分ごとで実行とか秒単位で実行したりできる…

Builderで文字列をエスケープさせない方法

builderはデフォルトでhtmlエスケープ的なことをしてくれますが、エスケープしたくないときもあります。 xml = Builder::XmlMarkup.new :indent => 2 xml.root "<hoge></hoge>" xml.target! # => "<root>&lt;hoge&gt;&lt;/hoge&gt;</root>" そういうときは xml = Builder::XmlMarkup.ne…

今週のrailscasts - Subdomains in Rails 3

Railscasts - Subdomains in Rails 3を見て。Rails3になって少しだけsubdomain対応が入ったので、それを拡張してsubdomain-fuとか使わなくても良くするという話。どうせなら完全にRails3側で対応してくれたら楽なのになあ。 ローカルでサブドメインを含むweb…

bundlerについて疑問に思ったことを調べた

bundlerについていくつか調べたことについてのまとめ。ただし中途半端。間違ってたら教えてください><Bundler: The best way to manage Ruby applications コマンド一覧 Tasks: bundle check # Checks if the dependencies listed in Gemfile are satisfie…

今週のrailscasts - PDFkit

Railscasts - PDFKitを見て。htmlをpdfに変換するライブラリpdfkitについて。裏ではwkhtmltopdfを使ってる。他には特に気になるところは無し。名前だけ覚えておこう。

今週のrailscasts - Active Model

Railscasts - Active Modelを見て。DBにいれたくないデータをActive Model で扱う例。 include ActiveModel::Validation を入れる。これでvalidationが使えるようになる。モジュールをさらに追加することで(これまでのActiveRecordっぽく)できる下記の二つを…