faq

Railsでscript/runnerで動かすバッチに引数を付けたいとき

引数は渡せませんが、環境変数で渡せます。バッチ内部で、 p ENV["HOGE"] などとしておけば、 HOGE=foo /path/to/script/runner /path/to/batch として、"foo"という文字列を渡せます。もちろん、複数渡すこともできます。 HOGE=foo FUGA=bar /path/to/scrip…

Railsであるタイムゾーンの時刻が知りたい場合どうするの?

例えばSamoaの場合。 t = Time.zone.now #=> Mon, 31 May 2010 07:57:37 UTC 00:00 t.in_time_zone(ActiveSupport::TimeZone['Samoa']) #=> Sun, 30 May 2010 20:57:37 SST -11:00 で、できます。 Time.zone = 'Samoa' Time.zone.now #=> Sun, 30 May 2010 2…

Railsで定数ってどこに書いたらいいの?

っていう質問がありました。以下は Rails 2.3.5 対応コードです。config/initializers/00_load_config.rb AppConfig = YAML.load_file("#{RAILS_ROOT}/config/settings.yml")[RAILS_ENV].symbolize_keys としておいて、config/settings.yml development: ema…

Rails3でscript/aboutどこ行ったのよ?

あー、./script/railsに全部統合されちゃったもんね、 $ ./script/rails about Error: Command not recognized ...(以下ヘルプ)... ねーわ。じゃーこっちしかねーわな。 $ rake -T (in /Users/babie/tmp/rails-test) rake about # Explain the current envir…

script/runner OR script/rails runner がクソ重い。どうしてくれんのよ?(Railsでのバッチ処理の手軽な方法)

Rails でバッチ処理といえば、 3.0 未満では script/runner、Rails 3.0 以上では script/rails runner コマンドがありますが、環境を全部ロードするのでスタートアップがクソ重いですよね。daemon_generatorとかを使うという手もありますが、やや大仰だなぁ…

Rails 3.0.0 って Ruby 1.9.1 対応してないの?(複数のバージョンのRubyを管理できるRVMの簡単な使い方)

してません(キリッ。Rails 3.0 は Ruby 1.8.7, 1.9.2 対応です。と、これだけではなんなんで、1台のPCに複数のRuby環境をインストールできる RVMの使い方を書きます。RVMでは今回説明する 1.9.2 以外にも、 jruby - JRuby rbx - rubinius ree - ruby Enterpris…

Rails 3.0.0.beta のドキュメントないの?(railsapi.comの使い方)

という質問がtwitterでつぶやかれてました。あります。http://railsapi.com/doc/rails-v3.0.0.beta.3/ です。railsapi.com はインクリメンタル検索ができて便利ですね。 また、Rails の各種バージョンだけでなく、 Ruby Authlogic AWS-S3 EventMachine Haml …

Ubuntu/DebianでRubyGemsをアップデートしたら格納場所が変わってギャーッとなる人へ

通常Debian/UbuntuのRubyGemsでは、RubyGemsの環境は(gem environment)以下のようになっていると思いますが、 INSTALLATION DIRECTORY: /var/lib/gems/1.8 EXECUTABLE DIRECTORY: /var/lib/gems/1.8/bin gem update --system や rubygems_update などを使っ…

RailsでCometを使うにはJuggernaut1択なの?(Rails 2.3.5 で ShootingStar を動かしてみた)

ryan5500さんが、「今でもrailsでcometを実装するには、juggernaut一択なのかしら。Flashを使ってるのが嫌だなぁ。」と、つぶやいておられました。いいえ、ShootingStarもあります。ShootingStarは @takiuchi さんが開発した、スケーラビリティの高いCometサ…

サーバーに空のプロジェクトを設置したらRailsの環境情報が表示されない。どうして?

という質問がありました。具体的には、public/index.html の "About your application’s environment" というリンクをクリックしたら表示される部分のことです。 おなじみのこれですね。エラーログを見たらわかりそうなものですが、私はサーバに入れず、エラ…

JRuby on Rails on GAE のやり方があちこちでいろいろ違ってて混乱してる。どうすればいいの?

@yuya_takeyamaさんが「JRuby on Rails on GAE のやり方があちこちでいろいろ違ってて混乱している。TMTOWTDI...」と嘆いておられましたのでアドバイス致しました。私が一時期調べまわったところ、GAEの上でJRubyを動かすには、appengine-jrubyプロジェクト…

rails の unit test で一々 fixtures を更新しないようにするにはどうすればいいの?

という質問がありました。Fixtures代替として、 Machinist Factory Girl の2点、擬似データ作成用として、 Faker をお薦めしておきました。MachinistもFactory GirlもテストデータをRubyコードで書けます。好みで選んだら良いと思いますが、Fakerと組み合わ…

Railsで悲観的ロックできないの?

という質問がありました。ActiveRecordで楽観的ロックは、ロックをかけたいModelに、lock_version という列を追加すればできます。 migrationでは、 t.integer :lock_version, :default => 0 こんな感じ。で、ご質問の悲観的ロックですが、findでオプション…

f.error_messages みたいなのってformオブジェクトなしで使えないの?

という質問がありました。Viewの中で、 <% form_for :person, @person, :url => { :action => "create" } do |f| %> ... <%= f.error_messages %> ... <% end %> と書くと、そのformの対象となるActiveRecordオブジェクトのエラーを表示してくれる機能があり…

Railsでlayoutのyieldって複数書けないの?

元の質問は、layoutで、 <html> <head> <%= yield %> </html> とかしていいの?という質問でしたが、「あー、きっとが毎回違うんだな」と予想したのでタイトルの質問として回答しました。 元質問の答えとしては、「できる」ですが、閉じ忘れたら大変よろしくないので、yieldを複…