サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
2012年05月07日11:49 Ruby respond_withメソッドを使うと処理をDRYに記述できる Rails には respond_to というメソッドがあり、これを使うと同じリソースに対して複数のフォーマットでレスポンスを返す処理を簡単に書けます。例えば users_controller.rb で以下のように定義すれば、/users でも /users.xml でもひとつのアクションで処理することが可能です。 def index respond_to do |format| format.html # index.html.haml format.xml { render :xml => @users } end end さらに、Rails3.0 からは respond_with というメソッドが追加されました。これを使うと処理をさらにすっきりと書くことが可能になります。 c
Railsアプリケーションの中で非同期処理(バッチ処理)を実現したいことがあります。例えば、こんな場合です。 ユーザーが「送信」ボタンを押したら数千通のメールを送る。 数千通のメールを送るにはかなり時間がかかるので、その処理は後回しにして、ユーザーにはすぐにレスポンスを返したいところです。 非同期処理を行うためのRubyライブラリとしてはBackgrounDRbやdelayed_jobなどが有名ですが、もう一つ有望な選択肢としてResqueというのがあることを最近知りました。 と言っても、私が知らなかっただけで、RubyGems.orgによれば11万回以上もダウンロードされている有名なライブラリです。昨年(2010年)1月に書かれた、あるブログ記事には詳しい評価が載っています。 以下、私の試用報告を書きます。なお、OSはUbuntu 10.04(LTS)、Railsのバージョンは3.0.5
最近、短期間でWebアプリケーションを作らなければならないという状況に直面するという事があった。 どのような環境で動かすのかという事を考えた結果、後々の再利用も考えて、Herokuで普通にRailsアプリケーションを動かすのが一番良い選択であると思い、それにあたってこれまで一度も使った事のないRubyとRailsを選択する事になった。 以下は、そこからどうにか三日間ぐらいでRailsでそこそこに物が作れるようになったまでに自分が踏んだ手順である。 ある程度他の言語がバリバリ書ける人を対象にしている。 -1. Railsの進化は速い おそらくはじめてRailsに触れた人にとって落とし穴になるであろう事として、Railsはものすごいスピードで基本的な事柄が変わっていく。古いRailsのバージョンを対象として書かれた資料では、様々な部分において最新のバージョンと大きな差があり、それがきっかけで何
昔からよくある Form が Submit された瞬間にボタンを disable にするというアレ。これをデフォルトの挙動にする。 config/initializers/submit_with_disable.rb # -*- encoding: utf-8 -*- module ActionView module Helpers module FormTagHelper alias_method :original_submit_tag, :submit_tag def submit_tag(value=nil, options={}) options[:disable_with] = '処理中...' unless options[:disable_with] original_submit_tag(value, options) end end end end これですべての送信ボ
Railsのために、ポート開けたり、リバースプロキシするのが面倒だし。PHPと同じようにファイル展開するだけで動いたら良いのに。 やってみたら動く。 調べたら動くことが分かった。 下準備 sudo aptitude install libapache2-mod-fcgid sudo aptitude install libfcgi-dev sudo gem install fcgiapacheにfcgiを入れてないときは、fcgiを入れる。rails持ってないときはrailsも入れてね。 実験環境 rails3.1 ruby 1.8.7 apache2 debian squeeze そうですね。ポイントはrails3.1です。 設定の流れ fastcgiが動くように railsが起動してるappディレクトリを準備 public ディレクトリに.htaccessを設定 .htaccess で
最近クックパッドでは、アプリケーションサーバの大半が 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
こんにちは。ほりいです。 今日は rails-bestpractices の話をします。 Ruby on Rails で開発するときのベストプラクティスをまとめている “Rails Best Practices”:http://rails-bestpractices.com/ というサイトがあります。先日の RubyKaigi 2011 で、このサイトのベストプラクティスに従っていないコードを指摘してくれる gem である “rails_best_practices”:https://github.com/flyerhzm/rails_best_practices についての “発表がありました”:http://rubykaigi.org/2011/ja/schedule/details/17S04 。 今回はそれを CI に組み込んでみた話をしたいと思います。 とりあえず rails_b
RESTful API の作成に特化したマイクロフレームワーク grape の存在を知ったので調査してみる事にしました。API の実装 に Rails の ActionController は重厚すぎる、Sinatra は軽いけど手間がかかる。。。という中で作られたこのフレームワーク、はたしてその実力は… grape の特徴# grape の特徴は概ね以下の通りです。grape 自体が Rack アプリケーションなので Rails3 に組み込むことが出来ます。というよりは組み込んで使うのが前提のようです(勿論単体でも動きます)。 Rack アプリケーション Sinatra ライクな DSL 自動で JSON にシリアライズ(#serializable_hash または #to_json が存在すればOKみたい) grape を使ってみる# 特徴を掴んだところで、実際にインストールして使って
Web開発フレームワークとして人気の高いRuby on Railsの最新版、バージョン3を使ってWebアプリ開発の基本を学びます。 人気のフレームワークでWeb開発を学ぶ Ruby on Railsは、いまやWebアプリケーションの開発フレームワークの有力な選択肢の1つとなっています。Ruby以外の言語のWebアプリケーションフレームワークも少なからずRailsの影響を受けているので、現在Rubyを使っていないエンジニアにとっても、Railsを知ることは大いに参考になるはずです。もうすぐRails3認定試験が本格的に開始されるということもあり、この連載では、試験範囲の流れに沿って、Railsの基礎についてご紹介していきます(ただし、必ずしも試験対策というわけではありません)。 今回、連載第1回として本記事では、Railsを理解する上で基本となる考え方であるMVCについて説明した後、Rail
■ [rails] Railsのテストを高速化するやつ ちょっと調べた。導入はわりと簡単なので試してみると良いです。 spork Railsをロード済みのテストサーバを立てることによって、テストの起動時間を短縮する。 https://github.com/timcharper/spork Twiwt:Blog / jugyo : spork でサクサク RSpec on Rails3 Rails 3対応。Rails 2の場合はspork 0.8.xを試せと書いてある。 テストフレームワークはRSpec、Cucumberに対応。Test::Unitを使う場合は https://github.com/timcharper/spork-testunit を入れる(ただし1.9未対応…)。 parallel_tests テストを複数のプロセスで実行することによって、テストの実行時間を短縮する。 (
watchr で Rails3 アプリをテストするには、 watch('app/(.*)\.rb') { |md| system "bundle exec rspec spec/#{md[1]}_spec.rb" } watch('spec/(.*)_spec\.rb') { |md| system "bundle exec rspec #{md[0]}" } というような感じで spec.watchr を書けばいい。マッチルールは autotest 使う時より複雑にできるけど、 autotest と違って screen に出力したりは出来ないっポイ。 see also http://aerial.st/archive/2011/01/21/watchr-for-autospec-like/ http://d.hatena.ne.jp/secondlife/20110121/12956
Rubyをはじめようかな?と思って3週間。 勉強し始めて2週間が経っているので、まずは、どこのサイトを見てRubyとRailsの概要を掴もうとしたかを記載しておきます。 自分はJavaエンジニアなので、まずは、JavaとRubyの違いを知って、Rubyを知って、Railsを知るという流れ。 - ■RubyについてJavaプログラマが知るべき10の事柄 - はてなダイアリー http://d.hatena.ne.jp/brazil/20050816/1124136877 ■JavaとRuby:主要機能の比較 http://japan.internet.com/column/developer/20080408/26.html ↑まずは、JavaとRubyの違いについて、ざっと確認。 ■Rubyの歩き方 http://jp.rubyist.net/magazine/?FirstStepRuby
今年から、Ruby 1.9 + Rails 3に移行しています。サーバーは、とりあえずHerokuで。HerokuでもRuby 1.9が使えます。ただし、ベータです。誇り高きサイヤ人の王子です。 Herokuで使えるRubyのバージョンを確認します。 % heroku stack aspen-mri-1.8.6 * bamboo-ree-1.8.7 bamboo-mri-1.9.1 (beta) bamboo-mri-1.9.2 (beta) 現在は、1.8.7ですね。1.9.2を使うことにします。 % heroku stack:migrate bamboo-mri-1.9.2 その後、git push heroku masterすると、バージョンが切り替わります。 % heroku stack aspen-mri-1.8.6 bamboo-ree-1.8.7 bamboo-mri-1.9
Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news. For better or worse, Ubuntu has become one of the most popular Linux variants on which to deploy Ruby and Rails apps. It was used for 84% of the 2010 Rails Rumble projects, for example. Back in 2009, I wrote a guide to installing a Ruby 1.8 stack on Ubuntu 8.10 so it was only a matter of time before I had to tackle 10.10 (
Rails 3 における Railtie と Engine と Plugin の関係をまとめます。 Railtie は Rails フレームワークの中核要素。ActonController や ActiveRecord などは Railtie の一種。 Railtie は Engine の親、Engine は Plugin の親である。 Engine も Plugin も Rails フレームワークを拡張するための「部品」である。コントローラ、ビュー、モデルを内包できる。 Plugin の開発者は明示的に Rails::Plugin クラスを継承してはいけない。vendor/plugins ディレクトリに置いてあるプラグインが自動的に Rails::Plugin になる。 Engine の開発者は明示的に Rails::Engine クラスを継承しなければならない。 Plugin は ge
新年になると、「今年こそはちゃんとブログを書こう」と思うのがおれです。今年もよろしくお願いします。 書初め*1ということで、Railsで何か作ることにしました。新しく始めるので、ちゃんとメモを取ろうと思ったわけです。以下はRailsプロジェクトを始める手順になります。 RVMでRubyをインストールして、railsをインストールする とりあえずRVMでruby-1.9.2を入れます。簡単です。 RVMに関してはこの辺をお読みください。 rvm: 複数のRubyを共存させる最新のやり方 - 床のトルストイ、ゲイとするとのこと $ rvm install 1.9.2 $ rvm use 1.9.2 次にrailsを入れます。これもgemで簡単です $ gem install rails Railsプロジェクトを作成する railsプロジェクトの作成は、rails newでできます。こんな感じ
プロジェクトが一区切りついたのでまとめておく。 個人的に初めてのRails開発だったので最初は色々と戸惑うことが多かったです。 このまとめは、その都度調べたものをEvernoteに突っ込んでいてそれを並べた感じです。 まぁ自分用メモです。 環境はこんな感じ - ruby 1.8.7 rails 2.3.8 MySQL 5.1 開発機 windowsXP 本番機 CentOS - アプリの概要としてはアンケートシステムが近いですね。 CSVダウンロード、PDFダウンロード、グラフがある。 (グラフは自分実装してないのでcairoを使ってるくらいしかわからない。わからないってダメですね。) モノはそんなに大きくなくて、2人で3ヶ月くらいのもの。 開発環境 Aptanaでインデントを揃える Aptana IDE のRuby Editor における表示設定|AAC通信 この設定で大分見やすくなりま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く