ActionMailerによるEメールの送信をRSpecでテストするには、例えばActionMailer::Base.deliveries.size.should == 1のように、送信済みのメールのサイズが1になるかどうかで判定します。 テストの対象として、ここでは「ユーザー登録が完了したら、当該のユーザーにメールを送信する」という場合を例に取ります。さまざまなテスト方法がありそうですが、ここではActionMailer::Base.deliveriesの配列の要素数が1と等しくなるかどうか? ということを以てテストを実施します。コードは以下のようになります。require 'spec_helper' describe User do before(:each) do @attr = { :username => "Foo", :email => "foo@foo.com", :pass
今回も基本的には個人的なメモ書き...φ(・ω・`) 時間のかかる処理を非同期化して動かすって手段(gem/plugin等)はいろいろありまして、 そういうのを知らなかった頃、自前でタスク処理フレームワーク*1を組んだりしましたが、 それは置いておいて・・・ そこまでいかなくても、何かを単純な処理を実行しっぱなしにしたい、 つまりdaemon化したいってのは良くある話でして そんな人のために、Ruby1.9系には「Process.daemon」という、 そのものズバリのメソッドが用意されています ただ、こいつは「単純なdaemon化*2」しかしません pidファイルの処理や、出力をlogへリダイレクトなんて処理は、 自前で書かなければなりません(´-ω-) それも面倒なので、軽量な仕組みはないかな・・・と探したところ、 「daemon-spawn」というgemを見つけました https:/
ActiveRecordを使ったRailsアプリは,デフォルトでデータベースへの接続をプールするようになっています. ActiveRecordユーザとしては待ちわびたぜ!的な機能らしいのですが,設定等でこれをdisableすることが出来ず,LVS+keepalivedを介する場合にはロードバランシングが最初の接続時にしか為されずがなかなか厄介です. 対策として思いついたのは プールした接続を早い周期で捨てる LVS+keepalivedではなく,MySQL Proxyでバランシングする(Proxyへの接続はプール) そもそも接続をプールさせない くらいでした. どうするのがセオリーなのかと調べてみると コネクションプーリングの話 - naoyaのはてなダイアリー 2006-09-03 など4年近く前に議論されていて,"あー,高速道路あるなあ"と,コネクション確立のコストを調べる前に「プール
railsのform_forヘルパーは以下のように使いますよね = form_for(@post) do |f| = f.label :title = f.text_field :title こう書いておけば出力されるhtmlは Title 大体こんな感じになるかと。 でrailsの便利なところはform_forに渡してるモデルオブジェクトが、空なのかDBのレコードから生成されたのかを判別して、actionの属性値をよしなに変更してくれるところですよね。 つまりroutesに resouces :posts do end と書いてあれば 新規作成時は action="/posts" だし編集画面では action="/posts/1" になると。 でもこれが namespace 付きのroutesだとうまく行かなくて困りました。 管理画面を作る場合とかだと /admin/posts にした
定期的に rails render controller で検索される方がいるようなので、もう一度まとめ。 まず rails の ActionController の render に :controller オプションはありません。コントローラをまたいだレンダリングを行いたいなら :template か :file オプションを使えば実現できます。 # comments_controller.rb def create @post = Post.find(params[:post_id]) if @post @comment = Comment.new(params[:comment]) @comment.post = @post @comment.remote_host = request.remote_ip if @comment.save redirect_to @post els
Rails の Ajax は過渡的なもので注意が必要だ この記事は Ruby Advent Calendar 2011 の 11 日目の記事です。真面目な話を書く。 Ruby プログラマーの皆様にあっては Rails プログラマーの方が多くいらっしゃると思います。 Rails を用いて開発されるプログラムには悉く Ajax が使用されていることでしょう。 つまり Ruby プログラマの多くは JavaScript プログラマです。 ところで Ruby と JavaScript はその思想に多きな差異があります。 JavaScript はその隅々においてコールバック制御を用いたシングルスレッドのイベントドリブンなプログラミングを要求します。 実際こうしたイベントドリブンなプログラミングは大層難しく、 Rails ではそれを隠蔽する為の仕組みが提供されています。御存知 link_to や fo
Hot Sex Images, Best XXX Photos and Free Porn Pics on www.dwellable.com
Data makes things hard In this article I'm going to go over some of the tricks we use to handle large data migrations at Honeybadger. Check out the video for a quick overview. When you have a lot of data, your life gets harder. When you only have 1000 rows, you can make DB-wide changes in IRB. With millions of rows, it's not that easy. If you don't believe me, just try it. RAM will spike. Your a
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Sharing Rails sessions with PHP, ColdFusion, and more! Sometimes it does not make sense to store session within a cookie. It might be a size issue, or it could be sensitive information you do not want to go across the wire with each request. Whatever the reason, another option is to database the session information. Luckily rails makes it really easy to do this via active record store. Active reco
Rails ships with a default configuration for the three most common environments that all applications need: test, development, and production. That’s a great start, and for smaller apps, probably enough too. But for Basecamp, we have another three: Beta: For testing feature branches on real production data. We often run feature branches on one of our five beta servers for weeks at the time to eval
RailsConf 2013 Talks May 5th 2013 Patterns of Basecamp's Application Architecture by David Heinemeier Hansson Video Slides How a Request Becomes a Response by Aimee Simone and Christopher Green Video Slides Embrace JavaScript by Yehuda Katz Video Slides Rails Vs. The Client Side by Noel Rappin Video Slides The Magic Tricks of Testing by Sandi Metz Video Slides Split Testing for Product Discovery b
有名なRails用認証プラグインである devise は、機能毎にモジュール化されており必要な物だけを選んで使うことができます。例えば Confirmable というモジュールを使うと会員登録時に確認メールを飛ばすことができます。ただ、デフォルトではメールアドレス変更時には確認メールが飛びません。そこで下記のやり方でメールアドレス変更時にも確認メールを飛ばすようにしました。 やり方 User モデルを devise 用のモデルとして使っていると仮定します。 config/initializer/devise.rb に下記の一文を追加します。 config.reconfirmable = true さらに、メールアドレス変更時の一次保存用カラムを追加します。 rails g migration add_unconfirmed_email_to_user unconfirmed_email r
技術部・開発基盤グループの中村です。 この度、クックパッドが開発し、オープンソースとして公開しているRuby on Rails向けプロトタイプ開発用のプラグイン「Chanko」を再設計し、Ruby 2.0.0 への移行に引き続き Chanko 2.0.0 をリリースしました。Chanko 2.0.0 では、これまでのバージョンと互換性を保ちながら、主に実行速度やコードの可読性について改善が加えられています。 http://cookpad.github.io/chanko/ Chankoとは Chankoは、素早く安全に新機能のプロトタイプを行うためのフレームワークです。クックパッドでは今現在でも、Chankoを使って多くの機能を独立して開発し、対象範囲を限定して公開することで新機能の検証サイクルを回しています。Chankoを利用して拡張した機能でエラーが起きた場合、拡張前の機能に自動的に切
viewsディレクトリ下にsharedというディレクトリを作成してそこに置くか、あるいはlayoutsディレクトリ下に置くこともできますが、Rails 3.1ではviewsディレクトリ下のapplicationディレクトリに置きます。 #269 Template Inheritance - RailsCasts mjd? このsideという部分テンプレートがすべてのコントローラから参照可能になります。これは、ビューの継承がコントローラの継承と並行して動作するからです。コントローラはすべてApplicationControllerを継承しているので、テンプレートはapplicationディレクトリから継承されます。 #269 Template Inheritance - RailsCasts 例えば、↓のように書くと、app/views/users/_side.html.erb、app/vi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く