You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Rails で STI(Single Table Inheritance)を使った時の、コントローラの実装をどうするか?という事について書いてみたいと思います。 STI(単一テーブル継承)とは オブジェクト指向の基本概念として、あるクラスを元にサブクラスを定義する継承があります。 この継承は、プログラミング言語ですとと予め機能が提供されていることが多いですが、 RDB ですとテーブル構成によって表現する場合があります。 *1 今回使う STI は、一つのテーブル内に継承関係にあるクラスのカラムを全て持ってしまう方法です。 例として Player クラスを継承した Footballer クラスと Cricketer クラスがあるとします。 親クラスに共通のプロパティ、子クラスがそれぞれのプロパティを持っていますが、これを STI で表現すると以下になります。 テーブルのレコードがどちらの型に
Ruby2.0のModule#prependは如何にしてalias_method_chainを撲滅するのか!? お久しぶりです。寺岡です。 lazyについて書いた前回に続いて、Ruby2.0について書いてみたいと思います。 今回注目する新機能は、Module#prependです。 Module#prependはRuby2.0で新たに追加された、Module#includeの親戚のような機能です。 一言で表すと「クラスの継承階層の手前にモジュールを追加する」ことができるようになります。 ActiveSupportのMudule#alias_method_chainを使わずに綺麗なモンキーパッチ実装することができる、Module#prependの挙動を探ってみたいと思います。 ruby2.0-rc1のインストール まずは実行環境の準備です。 前回の記事ではruby2.0-preview2を使い
Gemfileについてよくわかってなかったので調べてみた。 そもそもGemfileって? Bundler用の設定ファイル。 BundlerはGemfileの記述にしたがって、gemの依存関係を示したGemfile.lockを生成する。 じゃあ、Bundlerって何さ? アプリケーションで使用するgemのバージョン管理を行うプログラム。 「お前が書いたコード動かないんだけど?」 「ハァ? 俺の環境では動いてるし。バージョン違うんじゃねーの? 死ねよ」 ってならないためのツール。 Railsをはじめ、SinatraやRubyMotionでも使われている。*1 ちなみに、Bundlerの公式サイトにはこう書いてある。 The best way to manage your application's dependencies ベストらしいので使わない手はない。 source gemが置いてある場
2010年02月03日21:31 Ruby Rubyで "&" を使うと幸せになれるらしいよ (*´Д`)ノ なんか似たようなタイトルを見たことあるな…まぁいいか。 Perlで+を使うと幸せになれるよ (*´Д`)ノ - (゚∀゚)o彡 sasata299's blog ブロック処理 ( do...end もしくは {...} ) の例としてはこのような3種類があります。 #1 ブロックの中に直接処理を書く方法 #2 ブロックの中でやらせたい処理の Proc オブジェクトを呼び出す方法 #3 ブロックを使わずに Proc オブジェクトに & を付けて渡してあげる方法 3つとも全く同じ処理です。#3 みたいに書く事も出来るんですね〜。& が Proc オブジェクトをブロックに変換してくれます。 #1 3.times do puts 'hogehoge' end proc = Proc.new
Ruby on Railsの登場以後、さまざまな言語でRailsタイプのフレームワークが普及する中、Javaは一人取り残されていました。そこでJavaプログラマ向けに登場したのが、GroovyによるRailsライクなフレームワーク「Grails」です。Groovyは、Javaではありませんが、Javaプログラマなら、ほとんどJavaと同じ感覚でスクリプトを書くことができます。第1回目はまず、Javaプログラマのために「Groovyとはどんなものか」について、ごくかいつまんで説明します。 はじめに Ruby on Rails(Rails)が登場して以後、さまざまな言語でRailsタイプのフレームワークが登場し使われるようになりました。そんな中、一人ぽつねんと置き去りになっていたのが「Java」でした。Javaの世界では、既にStrutsというデファクトスタンダードとなるフレームワークがありま
最近クックパッドでは、アプリケーションサーバの大半が Rails 2.3 から Rails 3 に置き換わったのですが*1、リリース前のベンチマークの時点ではあまりパフォーマンスが出ず四苦八苦していました。具体的には Rails 2.3 の時と比べ MRI 1.8.7 だとレスポンスタムが200%ぐらい遅い結果でした。Rails 3 になって実装が Merb core を取り入れ疎結合で綺麗になった反面、より多くのオブジェクトと・メモリを利用する様になった影響かと思います。 そこで Ruby インタプリタの変更*2を行い検証をしたところ MRI 1.8.7 (Rails 2.3と比べ) 約200%遅い MRI 1.8.7 -> Ruby Enterprise Edition 1.8.7 2011.03 (tcmalloc 無効) 約180%低速 MRI 1.8.7 -> Ruby Ente
miyagawaさんのPodcast Rebuild: 19でKibanaの話があってちょっと盛り上がり始めてるので、簡単に動作を試せるサンプルアプリセットを作ってみました。 https://github.com/y310/kibana-trial git cloneしてREADMEに書いてある手順を実行していくと大体動くと思います。 railsからfluentdにログを送る部分は、こんな感じでrack middlewareを使って送ります。 # application_controller.rb class ApplicationController < ActionController::Base around_filter :collect_metrics def collect_metrics yield # ensureを使うのは例外時のログも捕捉するため ensure # co
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く