Rails

データベースの再構築

さて、久々のRails。 某所のRailsシステムを再構築し、新しいデータベース構造を効率化しました。 このような場合、古いデータベースから新しいデータベースへデータを移動するわけですが、構造がぜんぜん違うためダンプして突っ込むわけにはいきません。 も…

むきーーー!!!

ActiveRecordのヴァージョンが2.0.2から2.1.0にアップしたときに callbacks_forっていうメソッドがきれいさっぱりきれてやがります!!! activerecord/lib/active_record/callbacks.rb むきー!!! これによってcallbacks_forを呼んでるプラグインが全滅・…

時間の比較

さて、既にそれなりの開発時間が経過し、こまごまとした規制を作ってます。 とりあえずありがちな時間の比較メモ if self.deadline-(Time.now.since 3.days)<0 //3日以内だよ〜 endてな感じでコントローラ内でちぇき、ModelでチェックはValidateあるかも 一…

ActiveRecord

こ・・・これは・・・ http://dev.ariel-networks.com/articles/workshop/rails-activerecord findとかでのSQLの謎がかなり解決されている・・・ 1対1のリレーショナルDBとかすばらすぃ・・・ C++からとの連携とかでちょっと怖いけど・・・

Sessionについて・・・(し・・・湿度が・・・・

RailsのSessionについて @data = Data.find(params[:id]) session[:data]=@dataとかやって email = session[:data].emailとかできたんだ・・・・ オブジェクトは投げ込めないもんだとおもってた・・・ びっくりだ・・・

syntax error, unexpected tINTEGER

カラムの名前に type という名前をつけるとmigrationの時点では弾かないがActiverecordで下記のエラーが出る。 ... active_record/base.rb:1748: syntax error, unexpected tINTEGER予約語あるならmigrationで弾くかWarning出せって・・・

Rails開発のちょっとしたまとめ

今までずっとRailsの記事を書いてきましたが、一応いくつか一般公開したので動作サンプルとしてみてください。 製作中の記録記事参照は下部にまとめます。http://www.pagmo.net/ http://www.pagmo.net/charimgs/ 構成 OS Debian Debian4.0_r3 Database Mysql…

まっさらなDebian環境にRails2.0環境を構築メモ(本番HTTPサーバー編

Lighttpdをデーモンとして動かし、手前にSquidをキャッシュサーバーとして置く。# apt-get install lighttpd # apt-get install libfcgi-ruby# emacs /etc/lighttpd/lighttpd.conf server.modules = ( ...略... "mod_accesslog", "mod_fastcgi", #<=追記 ...…

まっさらなDebian環境にRails2.0環境を構築メモ(Rails編

APTにRailsが入ったのはありがたいけど、更新頻度やその他いろいろなバッドノウハウからmysqlとrubyとgemだけaptで入れてrails類はすべてgemから入れるのが良いと思います。 逆にgemからmysqlを入れても痛い目にあった気がするのでこちらも自分的にはバッド…

まっさらなDebian環境にRails2.0環境を構築メモ(とりあえずOS編

光回線一本とルータが余って遊んでいるのでサクッと新しいサービスを作って公開。 Debianのインストール http://cdimage.debian.org/debian-cd/4.0_r3/i386/iso-cd/ 上記からDebian4.0_r3のCDイメージをダウンロードしてインストール aptのソースをCDベース…

ハッシュ値で投稿者を匿名のまま特定

リクエストのあったIPと適当な文字からハッシュを作る。 (投稿者を匿名のまま同一人物特定するのに便利) hash = Digest::MD5.new.update(equest.remote_ip.to_s + 'MyHash' );

imagesフォルダの罠(未解決&妥協

Squid(cache) -> Apache(reverse-proxy) -> lighttpd(RailsServer)てな具合に設定をしたわけですが、これまた非常に高速でうれしい限りです。 が、しかし。 lighttpdの設定がいけないのか何なのか /imagesフォルダ以下のファイルが読めない・・・ちなみに Sq…

SQLのバイナリデータアップロードにおける限界

MySQLではMyISAMテーブルにおいて1テーブルのデータサイズに限界がある。 Mysql3.22までは4G制限だったが、現在のMySQLでは 800万テラバイト(2^63 バイト)と実質限界が存在しない。 だがしかし、今度はOSのラージファイルサポートの問題があり、1テーブ…

別コントローラのerbをrender partialする

地味な悩み。意外とみつからなかった。別コントローラの ***.html.erbを render partialしたいことが結構ある。 たとえば別コントローラへのトップメニューとか、コントローラごとにerbなんて作りたくない・・・とりあえず別accountというコントローラ上のma…

日本語でメール送信@ActionMailer

ユーザー登録の最終確認をメールでサクッと送ったりしたいので設定。 環境設定にSMTPサーバーの設定をいれる。 ここでは下で紹介するローカルのテスト用smtpサーバーを指定 config/environment.rb ActionMailer::Base.smtp_settings = { :address => '127.0.…

簡単にページをつける@Pagenate

Rails1.0ではPagenateがデフォルトでかかっていてページが勝手に作成されたが、2.0からはプラグイン化している。 まあ、なんかわからなくもないけど。 -昔のPagenateもPlugin化されているが更新されないとのことで、新しいPagenateを使うのが望ましい ruby s…

サーバー上ファイルからDBに画像をインポート@acts_as_attachment

今までファイル管理されていたデータをDBにがつっとアップロードするためにacts_as_attachementのフォーマット上にファイルを展開する。 acts_as_attachmentについて詳しくは↓を参照 > 画像をバイナリでSQL保存する、acts_as_attachment http://d.hatena.ne…

form_remote_tagの追記

↓前回「RailsのJS機能を使う(表示非表示切り替え)」での続き http://d.hatena.ne.jp/sakusan_net/20080416/1208309196前回投稿できるところまでは書きましたが、結果が反映されるところを作りました。 で、よくみるとupdateの値が間違えていたのでここで修…

本番環境のmongrel

mongrel TUEEEEEEEEEEEEEEEE! やっぱWeb**ckとはちょっとだいぶ違った。 リザルトのスピードが異様に速い・・・・ Completed in 0.19165 (5 reqs/sec) | Rendering: 0.13692 (71%) | DB: 0.00000 (0%) | 200 OK 200オブジェクト参照でこんな感じ、 数値だ…

Debianにmongrelのインストール

本番環境にmongrelのインストール ERROR: Error installing mongrel: ERROR: Failed to build gem native extension.とか no such file to load -- mkmf とか Gem files will remain installed in /usr/local/ruby-1.9.0/lib/ruby/gems/1.9.0/gems/fastthrea…

本番環境での動作設定メモ

テスト環境でのデータベースセットアップは $ rake db:migrate 全登録 $ rake db:migrate VERSION=0 全削除本番環境では $ rake environment RAILS_ENV=production db:migrate 全登録 $ rake environment RAILS_ENV=production db:migrate VERSION=0 全削除…

RailsのJS機能を使う(表示非表示切り替え)

RailsではJSとの連携が簡単に取れるようになっている。 と、どっかに書いてあったので、JSがまったく出来ないさくさんが無謀にも挑戦。タグデータ書き換え用フォームを出し入れしてみることにした。 「追加」っていう文字を押すと追加用テキストフォームが出…

ファイルキャッシュ効果

↓でSQLに一度読みに行ったファイルをローカルキャッシュする方法をとったが http://d.hatena.ne.jp/sakusan_net/20080411/1207932177↓のように、読み込み時だいたい3分の1の負荷率になった (左の山がSQLに直に読みに行ったとき、右の山がファイルキャッシ…

イメージマジックとRmagickをインストール(WIN)

acts_as_attachmentでサムネが作られなかったり画像サイズが保存されなかったりした。 よくみるとimagesのテーブル内がほぼ全部NULLΣ ソースを眺めて見るとMagick:: とか呼んでる・・・むしろ詠んでる・・・ ImageMagickとやらが入っていないといけないらし…

画像をDBに入れるべきか

ずっとこの問題は考え続けたりしているわけですが、昨日id:nyaxtさんと話している中でDBは大きなデータを入れるようにできていない、という話が出ました。 自分は基本構造までを知っているわけではないので「データベース」という言葉の意味を「データ置き場…

railsからのsend_dataやsend_fileをsquidに拾わせる

下の記事でDBのアクセス軽減は解消されたものの、今度はmongrelに対する半静的バイナリの要求をsend_file等でいちいち相手するのはバカバカしい。 うちのサーバー郡は手前にSquidが立っていてApacheのファイルは大体がSquidが返してくれているんですが、Rail…

railsでDBに画像データを入れる

DBに投稿される画像データを入れることにした。 以前↓こんな記事を紹介したが http://neta.ywcafe.net/000774.html とりあえずの理由は以下利点 ・SQLにまとまっているのでバックアップが楽 ・マシン増設が楽 ・データベースにデータがまとまってるのが気持…

railsメモ

gem自体ををアップデート gem update --systemでこんなエラーがでた uninitialized constant Gem::GemRunner (NameError) /usr/bin/gemに require 'rubygems/gem_runner'を加える

AS3からRails2.0にPOST

id:shokaiさんの記事を参考にAS3からRails2.0にデータを投げるもちょっとうまくいかなかったので追記以下を参考にRails2.0で作成 http://d.hatena.ne.jp/shokai/20080321/1206057388 $ rails testbbs $ cd testbbs $ ruby script/generate scaffold message …

sqlite3インストールメモ

http://www.sqlite.org/download.html 上記サイトのDownloadからPrecompiled Binaries For Windowsの中 sqlitedll-3_5_7.zipをダウンロード解凍 c:\windows\system32にこぴー