railscasts

Rails3.2へのupgrade方法と機能について

#318 Upgrading to Rails 3.2 - RailsCastsを見て 手持ちのRails3.1アプリをRails3.2.2へupgradeしてみました。 あと、後半は新機能のお試しです。 すでにRails 3.2.2がリリースされています。 3.1系から一気に3.2.2へupgradeも可能です。 upgrade作業自体は…

find_in_batchesメソッド

Railscasts - Rails 2.3 Extrasfindする件数を小分けにしてくれるメソッド。 こんなのがあるとは知らなかった。 まさにバッチ用。 使い方 :batch_size オプションで件数を指定。selectしてupdateなど。 Product.find_in_batches(:batch_size => 10) do |batc…

Sortable Table Columns

テーブルソートは自前でも割と簡単に実装できますが Railscasts - Sortable Table Columns で きれいなお手本が紹介されています。 若干異なりますが、つい先日ここでも似たような方法で実装したところです。 The Ruby Toolbox Search projects list 実装方…

rails3対応のプラグイン

Railscasts - Upgrading to Rails 3 Part 3 railscastsより。メモ。 Rails Plugins Compatibility Tracking - RailsPlugins.org

Highchartsを試してみた

ちょうどrailsで使用可能なchartライブラリを探していたところ 先週のrailscastsで紹介されていたので、早速使ってみた。 Railscasts - Charts Highcharts - Interactive JavaScript charts for your webpage ライセンス Highcharts - License and Pricing …

ABテスト プラグイン

Railscasts - A/B Testing with A/Bingo なかなか面白そう railscasts見てると導入も簡単にできそうで dashboardでコンバージョン率も確認できる。

viewのdebug

知らんかった。 Railscasts - 5 View Tips これは使えそう <%= debug @products %> <%= debug params %> <%= debug request.env %> いつも logger.info してたよ。 こんな感じ

git on rails

Railscasts - Git on Rails 知らんかった。こうすればよかったんか。 touch tmp/.gitignore log/.gitignoreってやって空ファイルを作成しておいた上で root下の.gitignoreに下記のように書いておけばok。 # .gitignore .DS_Store log/*.log tmp/**/* config/…

cucumber事始め(2)

前回の続き。 cucumber事始め - うんたらかんたらRuby - Rubyist railscasts railscastsの 2つのシナリオ(一覧表示を追加、新規追加を修正)を日本語で書くとこうなる。 Railscasts - Beginning with Cucumber 修正前 #features/manage_articles.feature Fe…

habtmとhas_many throw

Railscasts - Two Many-to-Many より どっち選択すりゃいいの? ってなったときは 1.do I need to store extra information in the join? 2.do I need to treat the join like its own model?if you answer "yes" to any of these, you need a has_many :thr…

urlのidについて

Railscasts - Model Name in URL より railsのurlは通常「model/id」ってなってると思う。 このidは変更可能なんですって。 知らんかった。 railscastsのurlもこの方式でやってるんだ。 http://railscasts.com/episodes/63-model-name-in-url やりかた to_p…

Logger!!!(ログにタイムスタンプを追加する方法)

20110501追記 続き書いた Rails2.3のログフォーマット - うんたらかんたら日記 Logger!!! Railscasts - The Logger Logger!!! - うんたらかんたらRuby - Rubyist ログに日時を追加(簡易版) /opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/act…

Logger!!!

Railscasts - The Logger より ログのカラーリングをオフ ansi escape sequenceを非表示にしたい場合 (本番環境では不要という場合など) #environment.rb config.active_record.colorize_logging = false script/console script/console時にログを標準出力…

script/console

Railscasts - Console Tricks より 期待せずに見たが、知らんことだらけだった。 --sandbox rollbackしてくれると。 $ ruby script/console --help Usage: console [environment] [options] -s, --sandbox Rollback database modifications on exit. --irb=[…

rescue_action_in_publicを使用したエラーハンドリング

Railscasts - Handling Exceptions rescue_action_in_publicが紹介されていた。 以前、存在しないpathを指定した際に404を出力させる方法 - うんたらかんたらRuby - Rubyist で書いた方式とは別に、既存のrescue_action_in_publicをoverrideさせることで実現…

'

Railscasts - Named Routes Railscasts - Custom REST Actions より なんとなくrails使ってると(scaffoldすると自動でmap.resourcesされるから)〜path/〜urlって時々出てくるけど そこらへんは、routes.rbで設定してたと。 メモ map.home "", :controller =>…

previewボタンを付ける方法

Railscasts - Multibutton Form より。previewは結構使うんじゃないかな。 やってみた view 通常のsubmitに加えprevie_buttonというnameで追加。 表示部は、params[:preview_button]がある場合のみ表示ロジックを記載。 <% if params[:preview_button] %> <%…

viewに検索ボックスを設置する方法

Railscasts - Simple Search Form やってみた view submit_tag の:name => nil にしておかないと QueryStringにcommit=Searchが付与されてしまう。 <% form_tag projects_path, :method => 'get' do %> <p> <%= text_field_tag :search, params[:search] %> <%=</p>…

Timeをテキストフィールドで扱う方法

Railscasts - Time in Text Field より 書き方 view こんな感じで扱う。 <%= f.text_field :hoge_at_string %> model ではparse時に発生したエラーをインスタンス変数を用いてハンドリングする。 def hoge_at_string due_at.to_s(:db) end def hoge_at_strin…

独自の日付フォーマットを設定する方法(nilだとまずい)

Railscasts - Formatting Time より environment.rb Time::DATE_FORMATS[:hoge] = "hoge on %B %d at %I:%M %p" viewでこう書ける。 <%= task.hoge_at.to_s(:hoge) %> こんな感じ ruby script/console >> t = Time.now => Tue Feb 23 19:28:30 0900 2010 >> …

counter_cache

親子関係のテーブルをselectした時に ぶら下がってる子テーブルの件数も表示させたいという場合 counter_cacheが使える。 通常、子のデータも欲しいときはincludeオプション(has_many または find時に随時指定) とかで同時に読ませておいて viewでParent.Chi…

railscastsのtextmate用theme

Railscasts - About Railscasts Railscasts.tmThemeDownloadを選択 ダウンロードしたファイルをダブルクリックすると ~/Library/Application\ Support/TextMate/Themes/ 下にコピーされる。 こんな感じ。

楽観的ロック

Railscasts - Optimistic Locking 簡単すぎる。 まぁ悲観的ロック(select for update)も簡単なようですが 楽観的ロックでたいていこと足りそう。 書き方 generate script/generate migration add_products_lock_version db/migrateへ追記 add_column :prod…

titleとh1要素をすっきり書く

Railscasts - Pretty Page Title viewに1行書くだけで、タイトルとh1要素を同じように出力できる。 なるほどねと思ったのでメモ。 まぁ、Four Days on Railsみたいに @(インスタンス)変数で記述する方法でもシンプルでいいんだけど 作者曰く、よりcleanに…

viewをきれいにする(Railscasts)

たまに見ているRailscasts。 英語だけど、コードを書きながら説明してくれるので分かりやすい。 今回は、erbをきれいにする方法。 cycleを使ったり、モデルにメソッド追加することでviewをすっきりさせる。 これはためになった。 Railscasts - Cleaning Up t…

親子関係にあるモデルを一括更新する方法

やりたいことは↓にあった。素敵! 参考:Railscasts - Complex Forms Part 3 概要 1.モデルにリレーションを設定 has_many / belogs_to 2.親モデル更新時に子も更新する 親モデル内に更新ロジックを記載 3.新規/更新で fields_for のタグが変わるよう…