maeshimaの日記

メモ書きです

2008-01-01から1年間の記事一覧

script/specとrake specの違い

script/specだとオールグリーンだけどrake specだとエラーなテストがある。なんか違うんだろうけど・・・あとで調べる。

rspec_railsのmock_modelとstub_modelの違い

どんなメソッドを使うかまで管理するならmock_model。そこまでしないならstub_modelを使うべきかな。 mock_modelは本当に基本的なメソッドだけ使える(idやnew_record?など)。カラム名のメソッドを使いたければ自分で指定してやる必要がある。 stub_modelはカ…

request_http_basic_authenticationメソッド

request_http_basic_authenticationメソッドは、メソッドの名前からbasic認証を始めるメソッドかと思ったけど違った。 def request_http_basic_authentication(realm = "Application") HttpAuthentication::Basic.authentication_request(self, realm) end d…

ネストしたリソースのURL自動判別

リファレンス見てたら、フォームから投げるURLを自動で判別してくれる機能がネストしたりソースにも対応してるのに気づいてこんな風に書いてみた。 <% remote_form_for([@user, @todo]) do |f| -%> #... <% end -%> そしたら404エラー。ログ見たら RAILS_ROO…

パス解析

パスから、割り振られるコントローラとアクションを解析したい場合は下記のようにする。 ActionController::Routing::Routes.recognize_path("/hoge", :method => :post)

コールバック

普段、モデルのコールバックはあんまり使わないんだけど、いざというときに使うので存在を忘れないようにしたい

form_forのルーティング自動判別

いつの間にか、form_forの引数にモデルオブジェクトを指定するだけで、そのモデルオブジェクトの状態をみてルーティングを自動で判別するようになってるみたい。 form_for @user do |f| # ... end 確認してないけど、 @user = User.newなら:controller => "u…

いまさらNamed Scopeのソースコードを追ってみた

後回しにしてたNamed Scopeまわりのソースコードをようやく読みました。参考にしたのは下記のエントリ。Rails 2.1 の新機能、Named Scope がおもしろい - takihiroの日記Named Scopeを理解するには下記の要素をきちんと理解している必要があるようです。一応…

ルーティング関連のrspec

こんな風にテストする。 route_for(:controller => "hoge", :action => "index").should == "/hoge" params_from(:get, "/blogs").should == {:controller => "blogs", :action => "index"} named_root(hoge_urlとか)には対応してないのかな?

for in

for(a in hoge) のaには数値が入る

rspec

いつの間にかrspecがgitに移行してた。 rspec_on_railsがrspec-railsに名称変更してた。 今日rspecではまったところ rspec内のresponse.should redirect_to()は:action => :indexの形式だとなぜかエラー。hoge_urlだとOK。理由は不明。

ルーティング

変更したら一回mongrelを再起動させた方がいい

ルート定義時のdefaultオプション

知らなかったのでメモ。:defaultsで任意のURLのデフォルト値を設定できる。 map.connect "entries/search/:order", :controller => "entries", :action => "search" :defaults => { :order => "recent"} users/guestとかで使えそう。

link_to_remote

methodを書く位置や、:htmlをつけるか否かなどいろいろ迷うのでメモ link_to_remote("ユーザ追加", :url => { :controller => "users", :action => "create", :user_id => 1 }, :method =>:post , :html => {:id => dom_id(user)})

attr_accessible

Userモデルで attr_accessible :name とすると user = User.new(:name => "willnet", :mail => "willnet@example.com") p user.mail #=> nil となる。

should be_redirectは使わない

リダイレクト先までチェックするshould redirect_to(url)を使った方がよさげ

gitメモ

git initでは作業用ディレクトリがそのままリポジトリのディレクトリになる。subversionのimportと比べて楽。 git addはsvn addとほぼ同じかと思いきや違った。ファイルを新規作成時だけでなく、更新したときにもgit addが必要になる。 git commit -aとする…

page.showとかのメソッドがあるモジュール

Module ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods

ActiveSupport::TimeWithZone

railsのmigrationのデフォルトcreated_atとupdated_atは(つまりDateTime型は)ActiveSupport::TimeWithZoneクラスのインスタンス。タイムゾーン情報を追加して使いやすくしたTimeらしー

IEとそれ以外の違い(li要素編)

li要素の中身がない時、IEはliの背景を表示しない。 回避策 li要素の中に を入れることで回避できる。(あんまいい解決方法じゃないけどね)

mmm-mode

emacsでhtml.erbファイルを編集しているときに、htmlタグはきちんとインデントされるのにはインデントされなくてなんだかなーとずっと思っていたのですが、どうやらmmm-modeというものを使うともインデントできるらしいことに気づきました。 ;; mmm-mode (re…

エラー関連

errorsメソッドはActiveRecord::Errorsオブジェクトを返す。 ActiveRecord::ErrorsオブジェクトはEnumerableモジュールをmix-inしているのでイテレータ系のメソッドが使える。 ActiveRecord::Errorsオブジェクトのメソッドの一部 on 特定の属性のエラーメッ…

javascriptグループ始めました

この日記はjavascriptのメモに使っていこうと思いますー

validates_length_ofの仕様

withinやinで範囲を指定した場合はなぜかmessageオプションが使えない(デフォルトの文字列になる)ので、maximumとminimumを使った方が良さげ と思ったら too_long too_short というオプションもあって、withinの時はこれを使うといいみたいね

validatesの:ifオプション

validates_hoghoge_of系メソッドの:ifオプションには、Procオブジェクト以外にメソッドを指定する事も出来る。 validates_presence_of :password, :if => :password_required? def password_required? # 処理 end

@charset

@charsetは外部CSSファイル(つまり@import)を使うときに指定する。

border-style

使いそうなやつだけメモ none ボーダーなし。隣接する要素で重なるボーダーが存在すればそのボーダーを表示。 hidden ボーダーなし。隣接する要素で重なるボーダーが存在しても強制的に非表示。 dotted 点線 dashed 破線 solid 実線

開始

css、デザインに関するちょっとしたメモとして使ってゆく予定

case_sensitiveで大文字と小文字を区別・・・できない

validates_uniquenessのオプションである:case_sensitiveはデフォルトfalse(大文字小文字を区別しない)true(2.2.0より)。かといってtrueにしても、mysqlを使用している場合は区別されないらしい。(mysqlは大文字小文字を区別せず保存する仕様なので。) 今の…