Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Webrickのログに、 WARN Could not determine content-length of response body. Set content-length of the response or set Response#chunked = trueていう警告がいっぱい出ていて鬱陶しかったので、表示しないようにした。 このページに載ってる通りにやっただけ。 https://bugs.ruby-lang.org/attachments/2300/204_304_keep_alive.patch 環境 ruby 1.9.3p392 (rbenvとruby-buildで入れたやつ) Rails 3.2.11 方法 ~/.rbenv/versions/1.9.3-p392/lib/ruby/1.9.1/webrick/httpresponse.rbを1行編集するだけで良いらし
最近になって知った Railsの便利なメソッドを紹介したいと思います。 pluck http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-pluck User.select(:id).where("age >= ?", 20).map(&:id) こんなコードが User.where("age >= ?", 20).pluck(:id) こうなります Rails3系では指定できるカラムはひとつだけでしたが、Rails4から複数カラムを指定できるようになりました。 User.where("age >= ?", 20).pluck(:id, :name) #=> [[1, '太郎'], [2, '花子'], [3, '二郎']] Rails3系でもmultipluck というgemを使えば同じことが
Railsの部分テンプレートからインスタンス変数を参照するのはやめて、locals経由で渡された変数を参照しましょう、というお話。 前提
単一画面で作成していた機能を、タブ表示に統合していたとき、リクエストが2回よばれるページがあることに気づいた。 ダイアログ:「削除してもよろしいですか?」 おれ:「はい」 ダイアログ:「削除してもよろしいですか?」 おれ:「はい・・・」 的な感じ。 どうもおかしいので、ぐぐってみると、 RailsでAjaxリクエストが2回行ってしまうときにチェックすべき3つの事 というようなことがあるらしい。 これの、【jQueryを2回読み込んでないか?】 というのに該当していた。 別画面構成の時の既存のlayoutをまとめた画面分、複数呼んでいたので、その都度jQueryを呼ぶつくりのままになっていた。 計3回も呼んでいた・・・w ということで、これを取り除いて解決した! 簡単に解決してよかった。
実はRailsでの開発を仕事とするようになって、そこそこ経ちました。 初めは、すげー、これ便利! と感動することしきりだったわけですけれど、いざ実運用に乗せてみると苦戦することもたくさん。 今回は、実装するときは、ちょっと立ち止まって考えないと、はまってしまいそうな(ていうか、よくはまってた)事例をまとめてみようかと思います。 NoMethodErrorの罠 まず一番よく出るのが、NoMethodError。 たとえば、モデルのリレーションに belongs_to :user と指定したとしましょう。 で、ビュー側では以下のように書いていたとします。 entry.user.name もしテーブルのuser_idがnilのデータを取得してきたら、NoMethodErrorが出てしまいますね。 ちょっと気を抜くと、このエラーが頻発します。 if entry.user.blank? ? entr
(Controllerに限らないですが)重い処理があると、htmlレンダリングはその処理後に行われるためユーザにはフリーズしたように見えてしまいます。(´・ω・`) 〜コントローラで〜 def heavyTask #重い処理 sleep(1000) end 、、、1000秒待たないと画面が表示されないよ(´・ω・`) 重い処理はThread.start()で別スレッド化して、同時にhtmlレンダリング出来るようにしましょう。 def heavyTask Thread.start do #重い処理 sleep(1000) end #重い処理を待たずにhtmlレンダリングできるよ(`・ω・´) end 以上のコードで、重い処理と画面表示を並列化出来ます。ぱちぱち。 ん、重い処理が終わったらその通知を画面に表示したいのですか? それはまた別のおはなし。(←ホントは知らな(ry 【注意】 Thre
こんにちは、鈴木です。 Ruby on Rails で複数のデータベースを扱う方法をご紹介します。 establish_connection establish_connection はデータベースと接続するためのメソッドです。 通常は明示的に呼び出すことはありませんが、複数のデータベースを使用する場合は、以下のように明示的に呼び出す必要があります。 class User < ActiveRecord::Base establish_connection :adapter => 'postgresql', :encoding => 'unicode', :database => 'other_database', :pool => '5', :username => 'USERNAME', :password => 'PASSWORD', :host => 'localhost' end
(rails3.2.13) ちなみに開発環境では問題は無く、 デプロイしたら ActionView::Template::Error になった。 原因 Gemfile の書き方だった jQuery-ui の Date Picker を日本語で使った場合に Gemfile の assets の書き方が原因だった。 デフォで assets グループの中に jquery-ui-rails がいる これだと ActionView::Template::Error になる(production.log) ビューで『We're sorry, but something went wrong.』と表示される。 group :assets do gem 'sass-rails', '~> 3.2.3' gem 'coffee-rails', '~> 3.2.1' # See https://github.
概要 Rails 3.1で新しいプロジェクトを作ったところ、本番環境でアセットがプリコンパイルされていないというエラーが発生しました。対策として、3.1から導入されたアセットパイプラインのために、プリコンパイル済みのアセットを作成しました。 ActionView::Template::Error (application.css isn't precompiled) 構成 Ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux] Rails 3.1.0 問題 Internal Server Errorが発生し、プロダクションログには次のエラーメッセージが出力されていました。 Started GET "/working_records" for 197.8.10.19 at 2011-09-20 11:35:19 +0900 Proc
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く