rails
エラー発生時に500ページを表示するようなテストを書きたいときに、デフォルトだとrspecがエラーを横取りしてしまってうまくいかない。spec中に下記のように書いておくと横取りを防げるみたい。 rescue_action_in_public! # 昔の書き方。今はdepricated # co…
http://railscasts.com/episodes/218-making-generators-in-rails-3を見て。Rails3になって変わったgeneratorの作り方について。 基礎 内部でthorを使うようになった。 rails g generator hoge で hoge generator のひな形を Rails.root/lib/generators 配下…
helperメソッドを使うと、describeの引数で設定したヘルパーモジュールのインスタンスにアクセスできる。インスタンス変数 @hoge に "fuga" を入れてテストしたい時は下記のように assign メソッドを使う assign[:hoge] = "fuga"
Railscasts - Multistep Formsを見て。formの内容が多くて複数ページに分割する場合のtips。 基本的な流れ それぞれの input 部分を partial templateにする ページ毎に名前を付けて配列で格納 render :partial => "" の部分を session で切り替える session…
RSpec Matchers | Teach Me To Codeカスタムマッチャの定義についての上記のサイトを見て。下記のような感じで定義できるみたい。 Spec::Matchers.define :contains do |element| match do |container| container.include? element end end describe Array d…
Railscasts - Generators in Rails 3 rails g scaffold --help とするとオプションがみれる。 rails g scaffold --no-stylehseets とすると、デフォルトtrueなstylesheetsオプションをオフに出来る。rails g xxx としたときにinvokeと書かれたgeneratorが実…
2.1.12からBundlerをサポートするようになった模様。 アプリをロードする前に Rails.root/.bundle/environment.rb を require する 上記ファイルがなければ、自動でBundler.setup()を実行する(Gemfileがあれば) config.ruやconfig/boot.rbよりも前にrequire…
143-151行。default-directory(カレントディレクトリ?)から始めてconfig/environment.rbが見つかるまでディレクトリを上に上がって調べてる。 (defun rinari-root (&optional dir home) (or dir (setq dir default-directory)) (if (file-exists-p (expand-…
rails 2系でrspecを使う時には下記のように書くらしいけど、:lib => falseがよく分からないので調べた。 config.gem "rspec", :lib => false 下記を見ると、rakeタスクなどで使うgemで普段はloadしたくないようなgemに設定するオプションみたい use :lib => …
Railscasts - Advanced Queries in Rails 3を見て。今週のrailscasts - Active Record Queries in Rails 3 - maeshimaの日記の続き的な内容。 to_sql 前も書いたけどto_sqlメソッドがすばらしい。 クラスメソッドとscopeの組み合わせ 引数とるタイプのscope…
A/B Testing とは どっちの文言の方がコンバージョン率が高いのか知りたいときにするテスト。ユーザによって文言を切り替えてアクセス統計をする→コンバージョン率の高い方を採用するマーケティングテスト。 google website optimizer railsに特化してない …
これまでメインアカウントのブログでrspecについて書いてきたことを復習して気になったところを簡単にまとめてみた。 ?を末尾に持つメソッドの書き換え receiver.hoge?.should == true は下記のようにも書ける receiver.should be_hoge receiver.should be_a…
elispの勉強と、railsコーディングの効率化を目的としてrinariのコードを読んでいきたいと思います。rinari.el自体は728行とたいしたボリュームではないのですが、lisp超初心者なので全部読むには時間がかかると思います。一日三十分くらいでできれば毎日少…
webratがまだrails3に対応してないので、対応してるっぽいcapybaraとやらをいれて使ってみた。 rails g cucumber:skeleton --capybara でセットアップできるjnicklas's capybara at master - GitHub
Railscasts - Calendarsを見て。日付の入力と出力に使えるプラグインの紹介。 日付の入力 jquery のプラグイン Datepickerの紹介。テキストフィールドへの日付の入力時にカレンダーがポップアップしてくれる。 日付の参照(google calendar風) 複数日にイベン…
良く忘れるのでメモ。session cookie の domainを設定しておくこと。そうしないとサブドメイン間でsessionの共有が出来ない。 Rails.application.config.session_store :cookie_store, { :key => '_hoge_session', :domain => "example.com" }
Railscasts - Validations in Rails 3を見て。 gem cleanup gem cleanup で古いgemを削除できる。 エラーメッセージ エラーメッセージ系のメソッドがプラグインとして切り出された。動画内ではエラーメッセージをpartial view化することで対応していた。 ren…
Ruby の例外クラスは分類が粗すぎる or 細かすぎる - まめめもを読んで。ブクマ代わりのエントリ。 引数の個数が間違っているとき 引数の中身が不正なとき 1以上の整数じゃなきゃダメとか 再帰しているArrayがダメとか がいっしょくたにArgumentErrorを吐く…
fixture代換プラグインMachinistの使い方 - おもしろWEBサービス開発日記の復習。忘れてた or 気になったところを再度メモ Shamのブロック引数 Shamのブロック変数にはインデックス番号が入る Sham.name {|index| "Name #{index}" } make_unsaved saveしたく…
これは便利。 require "activesupport" puts ["hoge", "fuga"].rand #=> hogeとfugaのどちらかがランダムに表示される 追記 Array#rand is deprecated and will be removed in Rails 3. Use "random_element" instead さらに追記 Array#random_element is de…
Railsレシピブック Recipe 1 - 17 - maeshimaの日記 Railsレシピブック Recipe 18-28 - maeshimaの日記 Railsレシピブック Recipe 29 - 47 - maeshimaの日記の続き。ActiveRecord編その1。 find 引数に配列を指定できる。 Blog.find([1,2,3]) new_record? …
Railscasts - Introducing Deviseを見て。rackベースの認証ソリューションプラグインdeviseについて。rails engineを使ってMVC全部のサポートをしてくれるみたい。migrationのメソッドもオーバライドしてる。 self.up create_table(:users) do |t| t.databas…
正確にはcontent_forを使わなかった時の挙動が2と3で違う。 <title><%= yield(:title) || "default title" %></title> のようにして、viewにてcontent_for :titleをしなかったときに、Rails 2だとdefault titleになるがRails 3だとタイトルが空白になる
いつもDBをリセットしたいときは rake db:migrate:reset としていたのだけど、 rake db:reset というrakeタスクもあるらしい。違いが良くわからなかったのでざっくり調べた。 db:migrate:reset rake db:drop rake db:create rake db:migrate と同じっぽい(未…
Railscasts - ERB Blocks in Rails 3を見て。Rails3のviewでのブロックの使い方が変わったという話。 変更点 blockをとるメソッドで=いらなかったのが必要になった Rails 2 <% form_for @users do |f| %> <% end %> Rails 3 <%= form_for @users do |f| %> <…
Railsレシピブック Recipe 1 - 17 - maeshimaの日記 Railsレシピブック Recipe 18-28 - maeshimaの日記の続き。ActionControllerの章の終わりまで。 filter after_filterの使いどころについては前調べて書いたafter_filterの使いどころ - maeshimaの日記 fil…
create, update等のアクションでrenderを使うのとredirect_toを使うのとどっちがいいかについての考察。自分以外の人が見てもわからないかもしれません。 scaffold的なアプリの場合はrenderでいいと思う(エラー時のエラーオブジェクトをそのまま使えるから楽…
Railscasts - Syntax Highlightingを見て。 シンタックスハイライト用のプラグイン CodeRay Ultraviolet pygments 早さもこの順番みたい。特にpygmentsは遅いので、もしつかうならcacheをうまく使うといいらしい。 CodeRayの使い方 あんまりしっかり見てない…
今までafter_filterをまともに使っていなかったけれど、そもそもどういう状況で使うのかいまいちわかってなかった。after_filter for replacing text | Railsvibesを読むと、renderした後のresponse.bodyを書き換えてクライアントに送る用途でafter_filterを…
Railscasts - Action Mailer in Rails 3を見て。 作り方 rails g mailer hoge これまでとは違い app/mailers 配下にひな形が作られる 使い方 mail(:to => email, :subject => "subject", :from => "hoge@hoge.com") 下記のようにすればデフォルトの値を宣言…