2007-07-01から1ヶ月間の記事一覧

配列演算

■誤解していると、バグの原因になるね [ [1,2],[3,4] ] + [ [5,6] ] = [ [1,2],[3,4],[5,6] ] [ [1,2],[3,4] ] [ [1,2],[3,4] ]

AJAXによる2つのプルダウンリストの連携

■プルダウンリストの連携(初めてのAJAX1つを選択すると、もう1つに、その子リストが入る 【要求】 1つのプルダウンで、面接担当者を選ぶと、もう1つの面接ボックスには、その人の担当する面接のみ が選べるようになる。 【発想】 1.面接官を指定…

プロフェッショナルとは

ある特定の職を選んだ人ではなく、ある特定の職から選ばれた人をプロという。 そう。「何故営業を選んだんですか?ではない。」「営業が私を選んだのだ」

パーキンソンの法則

■ある資源に対する需要は、その資源が入手可能な量まで膨張する 【具体的に言えば】 ・仕事は、その遂行のために利用できる時間をすべて埋めるように拡大する ・支出の額は、収入の額に達するまで膨張する ・データ量は与えられた記憶装置のスペースを満たす…

削除不能制約

■外部キーとしてつながっているものがなければ、親のレコードを削除できるまた、登録されていても、 編集は可能

スキーマ変更に伴うscaffold

■scffoしてからDBのカラムを加えたりすると、フォームのみ変わる。モデルとかは変わらないんだねぇ モデルには特に手を加えなくてOK!外部キー制約などを追加した際には、has_manyなどを加える

家からの移行

■家でもプログラミングすると、SVNレポジトリが変わって面倒。そんな時に 家でもSVN管理しているのでバグル。 →家のコピー(おそらくラハカ展開)したもの内のtrunk内のsvnを全て消す。 rm -rf .svn rm -rf */.svn rm -rf */*/.svn rm -rf */*/*/.svn 以下全…

フォルダのコピー

■CTR+ドラッグ=コピー。ドラッグしている時にCTR押してもOK

聞いてばかりの奴は成長しない

本当にできる人というのは、自分で考える力を持っている。問題解決能力である。聞いてばかりの奴など、 全く成長しない。聞くのは最終手段である。 トップになったら、誰も教えてくれない。自分でやるしかない。自分で出来ない人って、向いていないってこと…

フラッシュとレンダリングとリダイレクト

■レンダリングとフラッシュを使うといい場合もある 【基本的には、フラッシュとリダイレクト】 flash[:notice] = "現在のパスワードが間違っています" redirect_to :action => 'edit_password', :id => @interviewer.id こうすればOK【レンダリングすると…

実践なくして成長なし on Rails

やっぱり学んで実践すると伸びる。ノウハウもたまるし、なにより覚える。まさか2,3日で、ここまでテスト がかけるようになるとは・・・。しかし、まだそれはメソッドと、定型を覚えただけで、もっと、考えかた= どのようなテストを組むべきかの部分を延…

ハッシュ 引数のハッシュ化 超便利 検証用メソッド

■メソッドの引数をハッシュ化。これは超いい 【メソッドの機能】 テストで検証用のメソッドを作ってみた。不正条件でPOSTしたりする際に便利。 コントローラ側で使う変数(つまり、検証が書かれているモデルのインスタンス)とはじかれた際の レンダリング先…

テスト DateTime型の扱い create_onとか

■Railsのタイムスタンプ機能のテストの際の扱い方 データに〜_on、〜_atを使っていたとしたら、フィクスチャにはのように書く。Time.nowのままだと、0000-00-00-00のよう に認識されてしまう。

フック before_createとbefore_update

■モデルのフックメソッドの違いに関して before_create はupdate時には働かない。 before_save = before_updete + before_create

パスワードの罠

■passwordとhashed_passwordを持つと面倒ですよね presence_ofからは外して、validate等、他のフックでチェックする。でないと、編集時に検証に ひっかかって、面倒。 def validate_on_create #presence_of にすると、更新時にもチェックがかかって邪魔 self…

選択と集中

全ての時間をそのことに集中させる人のみ、プロフェッショナルとなる。 そのレベルにおいて、自分の夢、目標に対して+に働かないものは、全て無駄なのである。

チェックボックス デフォルト値

■チェックボックスのデフォルトの設定 <%= check_box("temp","interview_type#{i}",:checked => 'checked') %> 'unchecked'でチェックしない チェックボックス作る際には、後から外したときのことも忘れずに。if 0も必要だということ。 でないと、外しても、…

外部キーとテスト

■外部キーを含むテストの方法。フィクスチャファイルにはIDの値を書くのか? なんの問題もなし。フィクスチャファイルにはIDを書けば、テストの方ではきちんと参照できる。 もちろん、テストでなくても、更新などは使える 【フィクスチャファイル】 - as…

検証のタイミング

■validateのタイミングはいつか? 1.save save!にして置くと、notNullなのにNullになっていたりすると、個々でエラー 2.validate系 検証が行われる。よって、save!にすると、そっちのエラーが先に働く 3.before_create ここでフックが起動。よって、こ…

TDDのメリット テスト

■TDD。これマスターできたらかなり強い テストを先に書くことのメリットは、目的を定めるためでもあるが、リファクタリングしやすいことにある。 最初は、汚くてもいいので、テストをクリアするコードを書く。クリアしたら、重複の削除、ロジックの 変更を行…

辞書順と記号

■記号が入るとどうなるのかな interviewersと、interview_typesは、辞書順的には後者の方が先になる。 よって、Railsで結合テーブル作るには、interview_types_interviewers

配列演算

■配列の加算 [[1,2],[3,4]] + [5,6] = [[1,2],[3,4],[5,6]] × [[1,2],[3,4]] + [[5,6]] = [[1,2],[3,4],[5,6]] ○

map 配列化の簡略書式 属性の取り出し

■属性を取り出すときに便利interview_types.map(&:name) = .map{|temp| temp.name}

join 配列を一覧 配列を文字列へ

■エントリーを一覧するさいに便利 C:\MyRails\saiyo\trunck>irb irb(main):001:0> a = [1,2,3] => [1, 2, 3] irb(main):002:0> a.join(";") => "1;2;3" irb(main):003:0>

プルダウンリスト

■ビューでのプルダウンリスト作成のポイント 【要求】 プルダウンリストを作成していた際に、リストの中の3つのカラムの内1つを消すとする。すると、もともとあるそれ 以外の値(今も登録されている)の場合は、2つがプルダウンに表示される。 しかし、そ…

基本4コマンド CRUD

■CRUD 【create】 ※[]は不要ですよ〜自分が入力するところなので目立ってます ▼database create database [databasename] default character set utf 8; grant all on databasename.* to '[user]'@'[localhost]' identified by [password]; ▼table creat…

一言

1時間かかる単純作業があるならば、私は50分かけても、その作業を自動化するスクリプトを書く

構築する前に戦略を立てる

■ソースを書きながら、機能をほいほい変えていませんか? 確かに、最初に全て決めるのはナンセンスである。しかし、そのイテレーションに入ったら、いきなりソース を書いて、そこで悩んだり、機能をほいほい変えるのもいいものではない。 最初にノードなど…

saveとsave!

■ARをDBに保存する際のsaveメソッドの使い分け 【1.saveは例外を発生させない】 saveはとても簡単だが、例外を発生させない。よって、リレーションの場合や、トランザクションの場合 は困ってしまう。次の例を見てみる。(p237) invoice = Invoice.new …

foreign keyを使う

■Railsでリレーションを使いたい時のこと 【1.問題】 - Mysql::Error: #23000Cannot add or update a child row: a foreign key constraint fails: INSERT INTO students (`department`, `ph 〜 - というエラーになる。原因:親より先に子を作っているから…