2013-01-01から1年間の記事一覧
年末により縮小更新ありていに言うとそういうことなのですが、もったいないので読書メモとか残します。動機モデリングとかを真面目に考える機会がなかったけど必要になりそう。まずはデータベースの基礎の基礎のキを学ぼうとの考えです。以下メモマッピング…
アセットについて app/assets:アプリケーション固有のアセット lib/assets:開発チームにより作成されたアセット vender/assets:サードパーティのアセット スタイルシートやJavaScriptは1つのファイルにまとめた方が速度が出ます。 ただ、1つにまとめると…
特定の状態でしかアクションを許したくない場合 例えば、ユーザーが自分のアカウントにログイン場合のみに、そのユーザー情報を書き換える操作を許す。等、認可にかかわるbefore_filterメソッドの使い方をまとめます。 早速コード ごくごくシンプルに書けま…
editアクションとupdateアクションと認可の関連性 RESTfulなルーティングを実行している場合、レコード編集ではeditとupdateのアクションが発生します。 ブラウザでは、editの操作をテストできますので、認可の設定が活きているかの判定ができますが、update…
テストコード書いてないじゃんって気付いた 昨日作成したファクトリメソッドのテストコード書いてなかったので書きました。 順番逆ですけど大目にみてやってください。 ファクトリメソッドでインスタンス生成をクラス任せにする 早速テストコード RSpecで書…
連日のRails学習から一旦離れてファクトリメソッドの実装をしてみた ファクトリメソッドはインスタンス生成をクラスに任せます。ゆえに工場(ファクトリ)メソッドと呼ばれております。 クラス生成を隠蔽するので、結合が疎になってメンテナンス性が向上しま…
サインインを永続化する サインインを永続化して、サインアウトしたときにセッションを削除するシステムを考えます。 cookieと認証のためのモジュールであるSessionsHelperを用います。 SessionsHelperモジュールをアプリケーションコントローラにインクルー…
resourcesのonlyオプション route.rbに以下のように書けばRESTfulなルーティングが自動で割り当てられます。 resources :users でもそんなに要らないじゃん?index,new,create,show,edit,update,destroy全部は要らない場合。 resources :users, :only[:new,:…
Factory Girl 恥ずかしながら、いままでテストに使用するデータはデータマッパーを使ったスクリプトを作成して対処していました。 Factory Girlでは簡単に登録できるんですね。RSpecを使用する際に親和性が高いみたいです。 何はともあれGemfileを書いてbund…
Validationのお作法をまとめてみました バリデーションの基本的なパターンは存在性、長さ、フォーマット、一意性の確認となります。 整理のため、これら4つの処理をRailsで行う際のお作法をまとめてみます。テストコードも最後に付記しています。 存在性の検…
Railsの3つの環境 Railsにはテスト環境 (test)、開発環境 (development)、そして本番環境 (production) の3つの環境がデフォルトで装備されています。 Railsのコンソールrails consoleではデフォルトで開発環境が使用されます。コンソールで環境を確認すると…
config/routes.rbの編集 ルーティングの記述は、Railsの流儀に従うと以下のように書き換える必要がある。 get ‘static_pages/help' 例えば、上記のようなルートを書いていると、リンク作成時に都度
パーシャルの使い方を整理します。 headrerとかfooterとかタグ情報を書くのがとにかく嫌い。重複なんて大嫌いなのでパーシャルを使って重複をなくします。「パーシャル」って言葉でひっかけることができなくて、いままで恥ずかしながら知らない概念でした。 …
コードをコピーしてくる際にvimによる自動インデントが猛烈に邪魔なので回避方法。どうせすぐ忘れちゃうのでメモ。 :set paste その後、普通にPaste。 【参考】http://qiita.com/quwa/items/019250dbca167985fe32
Ruby on Rails チュートリアル、3章にしてテスト駆動の話が出てくるので初学者が恐れおののいている(だって罵詈雑言が飛んで来るじゃないですか)テストの書き方を学べてとても良いと思います。 というわけで、RSpecの重複を排除するlet関数を書いてみます…
例によってRuby on Rails チュートリアルです。2章のモデルの関連付けをメモします。 関連付け苦手なので出会ったそばから書き留めておきます。 class User < ActiveRecord::Base attr_accessible :email, :name has_many :microposts end class Micropost <…
例によってRuby on Rails チュートリアル読んでます。 http://railstutorial.jp/ Gemfileに記載されたrakeを使う場面があったのでメモ bundle exec rake db:migrate rakeを実行する前に「bundle exec」を接頭につけます。 その他 bundle exec rake -T db rak…
普段Git等さわらないので操作をすぐに忘れてしまいがちなので個人的にまとめ。 ブランチの作成 git checkout -b <branch-name> -bオプションを入れれば作成したブランチにcheckoutした状態で作成が済みます。 拡張子の変更 git mv README.rdoc README.md コミット git com</branch-name>…
rbenvでgem install railsしたらこんなエラーがでました。 Building native extensions. This could take a while... ERROR: Error installing rails: ERROR: Failed to build gem native extension. /Users/yonetin/.rbenv/versions/1.9.3-p429/bin/ruby ex…
rvmからrbenvに移ったはいいけどあんまりコード書いてなかったのでgemsetも入れてなかったから入れたよ。 入れ方 brew install rbenv-gemset 作り方 yonetin:study yonetin$ rbenv gemset create 2.0.0-p195 rails created rails for 2.0.0-p195 指定の仕方 …
エラー出たのでまとめ。 rvm install 1.9.3 => Error while running configure. Halting the installation. https://github.com/wayneeseguin/rvm/issues/2331 読むとどうもmavericksの既知のバグらしい。 Installation of ruby 1.9.3 in Mac OS Mavericks h…
メタプログラミングRubyを再読しています。 P101ページにundef_methodにより__id__や__send__を削除した場合のアラートが紹介されていたが、Ruby1.9.3-p342では若干動作が違っていたので記録。例によってGistです。 __id__がobject_idにかわっていただけで、…
コマンドラインで書いた文章を即Evernoteに飛ばしたい。 最近Evergearを購入してEvernoteの使用頻度が高まっているので、ちとやってみようかと。 例によってコードはGistです。 ruby evernote_createNote.rb と打ち込めば、Evernoteにデータが転送されます。…
素数判定の処理をベンチマークにかけてみた。 結果はこんな感じです。 (自作) 0.840000 0.000000 0.840000 ( 0.835207) (ライブラリ) 0.010000 0.000000 0.010000 ( 0.011727)20回くらいの繰り返しであれば自作の方が速かったのですが、大きくすればする程ダ…
学習のお題目として単純な素数判定を書きました。 結果は以下のような感じです。 10 is not prime number 11 37 47 55 is not prime number 2から割り始めて、、、という力技です。 割り切れた時点で割り算の処理を止めています。このメソッドをまわせば1〜1…
def printd(n) if ((n / 10) != 0) printd(n / 10) end putc("#{n % 10}") end printd(123) 再帰関数を書いた。 putcは一文字だけ表示させるメソッド。これまで知らなかったので、まとめられた記事を記載しておきます http://www.skymerica.com/blog/yotsumo…