Capistranoでのデプロイ中やメンテナンス中に一時的にWeb画面が表示できなくなる場合があると思います。そんな時にサクッとメンテナンス画面を表示してくれるGem、『turnout』の紹介です。
FlexやRuby on Railsなどで使い方とかを自分が後でわかるようにメモしておくブログ。最近はFlex系に飽きてます。 Rails2におけるdelayed_jobの設定方法まとめ 適宜追加していきます。 解説記事 v2.0.5 [Rails][非同期処理]delayed_job 2.0.5 詳細解説 - その1 v2.0.3 [Rails][非同期処理]delayed_job使い方 [Rails][非同期処理]delayed_job使い方 その2 [Rails][非同期処理]delayed_job使い方 その3 インストール gemでインストールする場合 gem install delayed_job -v 2.0.5 pluginでインストールする場合 ruby script/plugin install git://github.com/collectiveidea/delay
こんにちは、鈴木です。 Rails の便利なライブラリをシリーズでご紹介してみたいと思います。 今回は「N+1 問題」を検出してくれるライブラリ、bullet です。 bullet (http://github.com/flyerhzm/bullet) N+1 問題 N+1 問題とは、OR マッパーを使用しているときに発生しがちな問題です。 何かの一覧画面を作成しているときに、 一覧に表示するデータを取得するために SELECT を 1 回実行(N レコード返される) 各データの関連データを取得するために SELECT を N 回実行 データベースアクセス(SELECT)が合計 N+1 回も実行される(JOIN して 1 回の SQL で取得した方が効率的) というものです。 具体的なコードで考えてみましょう。 例として店舗の一覧画面を作成しているとします。 関係するモデルは以下の通りです
注意 このエントリは急いで書いたので間違いが含まれている可能性が高いです。気づいた方はご指摘ください。 序文 strong_parameters とは、mass assignment で余計なパラメータをモデルの属性にセットさせないための新しい仕組みです。Rails 4.0 からはこれが標準になります。Rails2.x と 3.x はattr_accessibleやattr_protectedなどで似たような機能が提供されていましたが、これだと管理が煩雑になるケースがありました。 今年の3月くらいにGitHub が mass assignment の脆弱性を突かれたことで 、この問題をどうにかしようという流れが起き、最終的に strong_parameters が作られるという経緯を辿りました。 mass assignment とは Rails ではこんなコードをよく見ると思います。 de
半年ほど前に書いた「コーディング規約をまとめてみた (Ruby編)」に引き続き、Railsのコーディング規約もまとめてみました。前回と同じように、できるだけ理由を併記するよう努めました (主観的なものも含まれていますが…)。 気に入らない規約や、この記事に書かれている規約以外にも気をつけていることなどありましたら、コメントなどで教えてもらえると嬉しいです (理由も合わせて書いてくれると助かります)。 Railsのコーディング規約は以下のページを参考にまとめています。 http://guides.rubyonrails.org/contributingtorubyonrails.html#follow-the-coding-conventions https://github.com/bbatsov/rails-style-guide 前提 コード例は「コーディング規約をまとめてみた (Ru
いま CentOS 5.7 及びソースからコンパイルした Ruby 1.9.2-p290 を使っています。 例えば Rails 3.2 を使うためには、Ruby をインストールする前に、下記の yum パッケージをインストールしておかなくてはいけません。 -zlib(CentOS には最初から入っていました) -zlib-devel -readline(CentOS には最初から入っていました) -readline-devel -openssl(CentOS には最初から入っていました) -openssl-devel << では、上記パッケージをインストールする前に Ruby をインストールしてしまったらどうしたらよいか、という話です、今回。 **Ruby を使っていて「no such file to load --zlib | readline | openssl」エラーに遭遇したときの
こんにちは、SHIMADAです。 最近、オライリー社の新刊「プログラマが知るべき97のこと」がTwitterで話題に上っているようですね。 ここでは、Railsプログラマが知るべきことを挙げてみました。 残念ながら97も思いつかなかったので、25個です。看板に偽りありですね。ごめんなさい! ■ コントローラ 行数よりもインデントの深さに気をつける if-then-elseをネストしたくなったらロジックが間違っている アクションでないメソッドはprotected/privateにする 行数を減らす目的でbeforeフィルタを書かない グローバル変数、インスタンス変数にアクセスするポイントを集中させる グローバル変数(paramsとか)に代入しない ダイナミックファイダを使えないfindをみつけたらモデルのメソッド/named_scopeにする ■ モデル DBのテーブルを持たないクラスはAR
Deprecated: Assigning the return value of new by reference is deprecated in /home/users/1/fool.jp-ichi/web/blog/wp-settings.php on line 472 Deprecated: Assigning the return value of new by reference is deprecated in /home/users/1/fool.jp-ichi/web/blog/wp-settings.php on line 487 Deprecated: Assigning the return value of new by reference is deprecated in /home/users/1/fool.jp-ichi/web/blog/wp-setti
私は Rails のソースコードを読むのが大好きです。 複雑怪奇で読み解けないことも多いのですが、時折、簡潔で美しいコードに出会ってちょっとした感動を覚えます。 もし、あなたがまだ読んだことがないのであれば、ActiveSupport の extract_options.rb とattribute_accessors.rb をお勧めします。 ソースコードのある場所は環境によって異なりますが、Windows なら Ruby をインストールしたフォルダから、Linux なら /usr/lib/ruby/ ディレクトリから gems/1.8/gems/activesupport-2.0.2/lib/active_support/core_ext へと降りていき、その下の array および class フォルダ(ディレクトリ)にあります。(2.0.2 の部分は適宜読み替えてください) extra
powder will attempt to read .powder, which names a default symlink for the current project $ powder [-h|help] => Display usage information # Lists name and brief descriptions of the tasks available $ powder link => Link the current dir to ~/.pow/<current_directory> $ powder link [bacon] => Link the current dir to ~/.pow/bacon => Create .powder, contents bacon $ powder link [bacon] --no-create => L
railsのログでStarted GET "/assets/application.js?body=1" などjsやcssへのGETが表示されて、実際にみたいGETやPOSTが流れてしまうのを回避するには、initializerで下記の設定をすればOKらしい。 今まで知らなかった。。。 Rails.application.assets.logger = Logger.new('/dev/null') Rails::Rack::Logger.class_eval do def call_with_quiet_assets(env) previous_level = Rails.logger.level Rails.logger.level = Logger::ERROR if env['PATH_INFO'].index("/assets/") == 0 call_without_quiet
ブランチングモデルとしてgit-flowを使っていて、メインラインとして、本番適用中のmasterブランチと、次期リリース用のrelease/9999ブランチと、メイン開発ブランチのdevelopがある。 ところが、開発中は頻繁にブランチを移動するし、ブランチによってDBのスキーマが異なるなんてザラにあるし、ブランチ切り替える度にconfig/database.ymlを書き換えるのもタルいので、こんな風に書いた。 development: adapter: postgresql database: my_app_<%= case `git symbolic-ref --short HEAD` when 'master' then 'master' when 'develop' then 'develop' when /release\/.*/ then 'release' when /ho
Unexpected Run: Rails3.0でモデルのER図を簡単に出力する方法 こちらの記事を参考に、試してみました。 紹介記事の中にもありますが、railroadよりも簡単です。 railroadでクラス図作成 - うんたらかんたら日記 install Rails ERD – Installation instructions graphvizを入れます。 #brew brew install cairo pango graphviz #port sudo port install graphviz #debian sudo aptitude install graphviz あとは Gemfileに書いて、bundle installするだけ。 group :development do gem "rails-erd" end 使い方 rake erdコレだけ!! オプション R
wikiより シンタックスハイライト(英: Syntax highlighting)とは、テキストエディタの機能であり、テキスト中の一部分をその分類ごとに異なる色やフォントで表示するものである 要はこういうものですね ↓ シンタックスハイライト! エディターでも使われていて、構文解析を行なって意味によって色付けを行う機能です Railsではシンタックスハイライト用にいくつかなgemがありますがここでは ・CodeRay を使用しします。またマークダウンされたコードは<pre></pre>というタグで囲まていて、コードの部分だけを色付けするためには構文解析が必要となり ・nokogiri というgemを使います。ということで、インストールしましょう!
DoRuby! (ドルビー!) は現場のエンジニアによる、主にRubyなどの技術に関する様々な実践ノウハウを集めた技術情報サイトです。 こんにちは。T氏です。 今日はRailsのエラー画面(public/404.htmlや500.html)への遷移はどうやってされているかをご紹介します。 エラー画面への制御は、actionpackのrescue.rbで行っています。 *今回はactionpack-2.1.2である事前提に話を進めます。 では、処理が行われている実際のコードを抜き出して見てみましょう。 まず、Exceptionが発生するとrescue.rbのrescue_actionが呼び出されます。 ここではlocalhostか判定をして表示するviewの振り分けをしています。 def rescue_action(exception) # logへの出
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く