railsの環境をコマンドにも適用したいときに使う、script/runnerですが、webサーバでの実行と多少異なる場合があるようです。 とあるプロジェクトで、DBのカラムにformatというフィールドを作りました。webサーバで動かしている間は、model.formatと書いて代入や取り出しをしてたんですが、script/runnerで動かそうとすると、Kernel#formatの事だと思って、誤動作や実行エラーになりました。formatなんて紛らわしいカラム作っちゃだめですね。
ActiveRecord::Base::transaction() do ~ end 間でreturnしてもロールバックされない。 ロールバックするには、例外をスローする必要がある。 以下に例を示します。 @studentの登録に成功し、@profileの登録に失敗した場合。 ○@studentの登録がロールバックされる begin ActiveRecord::Base::transaction() do @student = Student::create(params[:student]) @profile = @student.create_profile(params[:profile]) unless @student.errors.empty? raise ActiveRecord::RecordInvalid::new(@student) end unless @profil
DB更新クローラーなどの単体アプリケーション(Rails以外のアプリケーション)でもActiveRecordを用いてDB操作する方法です。 ActiveRecordを使用するのに必要なファイルは以下の通り ■RaisAppDir/config/boot ■RaisAppDir/config/environment これらを読み込み、 ■RaisAppDir/config/database.yml からDBへコネクションを張ると使用できます。 コードは #!/usr/local/bin/ruby #PATHは環境によって変更 require 'path/to/railsdir/config/boot' require 'path/to/railsdir/config/environment' #YAMLの読み込み:PATHは環境によって変更 dbconfig = YAML.load_file
irb -rconfig/boot.rb とかやってたんですが、よ~く見ると(見なくても)script/consoleというのがあるじゃないですかぁ。 早く言ってよw
has_manyのwill_paginateでちょっとイケてないSQLが吐かれるというのはいろんなブログで書かれています。具体的には、ページ内で表示するのが10件だとしても、一度全件持ってくるSQLを発行します。そこで、別のpaginate pluginである、paginating_findを試してみました。 結果的には paginating_find だと、無駄なSQLが吐かれません。(count(*)は無駄だと思うが・・) でも、、railsのコード的には will_paginate の方が好きなんだよな。。 両方のサンプルと吐かれるSQLを下記しておきます。 ここでのサンプルは、ユーザが書いたコメントを表示するページです。 コメントは他のユーザにも表示するため、ユーザとコメントの関係は 多対多 です。 will_paginateのcontroller @user = User.fin
威哥王:www.威哥王通販.com イカオウ:www.威哥王通販.com ウェイカワン:www.威哥王通販.com 威哥王:www.威哥王通販.net イカオウ:www.威哥王通販.net ウェイカワン:www.威哥王通販.net 紅蜘蛛:www.紅蜘蛛通販.com 紅蜘蛛:www.紅蜘蛛通販.net 曲美:www.曲美通販.com 狼1号:www.狼一号.com 狼一号:www.狼一号.com 巨人倍増:www.巨人倍増.net 三便宝:www.三便宝.com 三便宝:www.三便宝.net 花痴:www.花痴.net 巨人倍増:www.chinakanpo.com/product/jrbz.html 威哥王:www.chinakanpo.com/product/weigwang.html 三便宝:www.chinakanpo.com/product/sanbianbao.html 精力
0.nil? #=> false 0.zero? #= true 0.empty? #=> NoMethodError 0.blank? #=> false 0 == false #=> false "".nil? #=> false "".zero? #=> NoMethodError "".empty? #=> true "".blank? #=> true "" == false #=> false {}.nil? #=> false {}.zero? #=> NoMethodError {}.empty? #=> true {}.blank? #=> true {} == false #=> false [].nil? #=> false [].zero? #=> NoMethodError [].empty? #=> true [].blank? #=> true [] == f
refererなどを知りたい時に、requestオブジェクトに聞くと良い。 具体的には、CGIの環境変数と次のような関係にある。 AUTH_TYPE : request.auth_type CONTENT_LENGTH : request.content_length CONTENT_TYPE : request.content_type GATEWAY_INTERFACE : request.gateway_interface PATH_INFO : request.path_info PATH_TRANSLATED : request.path_translated QUERY_STRING : request.query_string REMOTE_ADDR : request.remote_addr REMOTE_HOST : request.remote_host REMOTE_
で解決 ■mod_rewriteとの併用 困ったのは、mod_rewriteに関して。 virtualhostに以下を設定して動かしたんですが、rewriteが効いてない模様。。。 PassengerHighPerformance on PassengerMaxPoolSize 30 PassengerMaxInstancesPerApp 0 PassengerPoolIdleTime 300 PassengerMaxRequests 0 <VirtualHost *:80> ServerName rails.sample.jp DocumentRoot /path-to-rails/public <Directory "/path-to-rails/public"> Options -Indexes FollowSymLinks MultiViews AllowOverride None
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く