Rails

ssl_requirementを使ってSSL対応

ssl_requirementというプラグインを使うとhttpとhttps混合サイトなども簡単にできる インストール # install ruby script/plugin install ssl_requirement # include(application._controller.rbとか) include SslRequirement 使い方 # コントローラで対応し…

RedmineのDBをSQLite3からMySQLに変更した

SQLite3からデータ移行する際はSQLite3 > yml > MySQLみたいなことをするみたい yaml_dbインストール yaml_dbというプラグインでSQLite3のデータをymlに変換 # install script/plugin install git://github.com/adamwiggins/yaml_db.git # yml dump rake db:…

TemplateError in exception_notifier/_environment.rhtml

今日少し詰まったところ。actionmailerで例外が発生したときにこんなエラー出たら恐らくこれ。Ruby 1.8.6のpatchlevel ActionView::TemplateError (flag after width) on line #3 of /vendor/plugins/exception_notification/views/exception_notifier/_envi…

error_messages_forで勘違いしてた

エラーメッセージを表示させるerror_messages_forっていうヘルパーメソッドの指定を Model名だと思い込んでたみたい。たまたま、Model名と違うインスタンス名を使って表示使ってみるとエラーがでた。インスタンス変数の名前を指定すると表示できる # control…

Passengerインストール

CentOS5.4でApacheはyumでインストールしたものを使用。 ソースから入れたものだと別途入れるものが結構あるのでyumの方が楽。3分で終わるよ!!などというメッセージでるけどそんなことは稀 It shouldn't take more than 3 minutes in total. インストール…

SnowLeopardでRailsからMySQLを使うとき

SnowLeopardが発売された時みんな騒いでたんだけど今頃になって遭遇した。 MySQLは32bit版いれてたと思うんだけど64bitドライバいれたらつながった。 sudo gem install mysqlMySQLに接続しようとすると下記エラーがでる uninitialized constant MysqlCompat:…

Ubuntu9.10にRailsのインストールをする

以前の9.04の環境構築の改訂版なので多少はマシになっているハズ とりあえずブラウザでlocalhost:3000がみれるまでとしているdbとかはスルー 過去の記事:Ubuntu 9.04にRuby on Railsインストール - WapBox インストールする環境 Ubuntu 9.10 VirtualBox上で…

ActiveRecord:findの使い方メモ

例えば下記のようなcommentsテーブルがあり一番多く投稿してるユーザーIDをとる場合 id body user_id 1 hogehogehogehoge 1 2 foofoofoo 2 3 barbarbar 3 4 fizzfizzfizz 1 5 buzzbuzzbuzz 2 6 hellohello 1 Comment.find(:first, :select => "user_id, coun…

ActiveRecordのプレースホルダの書き方

ActiveRecordのプレースホルダといえば下のようなのだとおもってたんだけど。 Hoge.find(:all, :conditions => ["email = ? and name = ?", params[:email], params[:name]]) シンボルで指定する方法もあった。どう解釈するのか悩んでたけど普通に読めば良か…

Head First Rails購入

Amazonで衝動買い。Head Firstシリーズは評価が高いのでいい感じなのかなHead First Rails ―頭とからだで覚えるRailsの基本作者:David GriffithsオライリージャパンAmazonあとMacbookPro用にUSBハブを買った アルミの感じににてて親和性がいい感じ [asin:B00…

jpmobileのviewの振り分け順

index_mobile_carrier.html.erb index_mobile.html.erb index.html.erb carrierにはdocomo,au,softbankが入る 参考リンク http://rdoc.info/projects/darashi/jpmobile

findのincludeオプションで多段の関連を読み込む

関連テーブルを読み込むincludeオプションで簡単に関連テーブルの情報を扱える Hoge.find(:all, :include => :foo) 複数テーブルなんかは配列を指定してやればいいのだけど多段の関係の際は以下みたいにする Hoge.find(:all, :include => {:foo => :bar})

UbuntuにHyper Estraierをいれてacts_as_searchableを使う

acts_as_searchableはmodelを全文検索するときに使うプラグインでHyper Estraierを使って検索する Hyper Estraier インストール sudo apt-get install hyperestraier /etc/default/hyperestraierを編集 NO_START=0NO_STARTを0に変更。ブート時自動起動するよ…

ActiveRecordのコールバックの順番

RailsによるアジャイルWebアプリケーション開発 第2版 P.346より 新規レコード作成 before_validation before_validation_on_create after_validation after_validation_on_create before_save before_create after_create after_save 既存レコード更新 befo…

Rails - findのconditionsで配列を指定する

一番多くやる特定の値を検索するときはこう Model.find(:all, :conditions => ["mail = ?", "hoge@sample.com"]) IN使えばできる。SQL覚えないとやばい Model.find(:all, :conditions => ["mail in (?)", ["hoge@sample.com", "foo@sample.com", "hello@samp…

Rails - update_allのconditions指定

Model.update_all("column_name=value", ["hoge = ?", true]) こんなん書いてエラーになったりする。 Model.update_all("column_name=value", :conditions => ["hoge = ?", true])

Rails - MySQLのUNIXsocketのパス指定

MySQLと接続の際に使うsocketファイルはデフォルトで以下に生成される /tmp/mysql.socksocketファイルがないと以下のエラーがでる No such file or directory - /tmp/mysql.sockRailsのdatabase.ymlにsocketのパスを書いてやればいい MySQLのsocketの場所を…

rails.vimの略語展開まとめ

Rails.vimのチートシート - moroの日記チートシートに書かれていたrails.vimの略語展開のまとめ。 入力 展開 pa[ params rq[ request rs[ response se[ session hd[ headers te[ template co[ cookies fl[ flash rr( render rp( render :partial => ri( rend…

Rails - crontabでバッチ処理を行う

crontabからscript/runnerでmodelのメソッド呼んで上げればいい */5 * * * * /usr/bin/ruby /rails_root/script/runner 'Model.method'cronの書式を簡単に書いておくと左から順番に以下の指定 分 時 日 月 曜日 例の表記は5分おきにモデルのメソッドを実行す…

Rails 初期データをフィクスチャからロードする

RailsによるアジャイルWebアプリケーション開発 第2版 P.254よりfixtureは本来テストデータをロードするものだが初期データのロードにも使える 使用できるファイル形式はCSV形式、YAML形式であれば使用できる/db/migration/dir_nameにファイルをおくとして以…

Rails + MySQLでのblob型の扱い

RailsのMigrationで:binaryとするとMySQLではblob型になる。 create_table :files do |t| t.column :data, :binary end MySQLでのblob型 型 サイズ TINYBLOB 256byte BLOB 64KB MEDIUMBLOB 16MB LONGBLOB 4GB Migrationでは:binaryしか選択肢がなくMySQLだと…

Mongrelインストール

Webrick使っていたけどMongrelに切り替える gem install mongrel Select which gem to install for your platform (i386-mswin32) 1. mongrel 1.1.5 (ruby) 2. mongrel 1.1.5 (java) 3. mongrel 1.1.5 (x86-mingw32) 4. mongrel 1.1.5 (x86-mswin32-60) 5. S…

Rails - Viewでcontroller,actionを取得する

controller.controller_name controller.action_name 参考リンク コントローラとアクション名取得 - abennuのときどきメモリアル RailsによるアジャイルWebアプリケーション開発 第4版作者:Sam Ruby,Dave Thomas,David Heinemeier Hanssonオーム社Amazon

Rails - add_columnした時に既存データに初期値を代入する

新規作成時には:defaultで指定してやればいいが既存データの場合 Model.update_all("column_name=value") 全てのデータの該当カラムに値をいれる。当然カラム追加後に処理を書く [asin:4274068668:detail]

Rails - allow_nilを使用する際の注意

フォームで指定された形式で入力してほしいけど必須入力項目では無いとき validates_format_ofで未入力を許可しようと思ってもallow_nilではできない validates_format_of :url, :with => /[0-9A-Za-z_\/\-\.\:]/, :message => "が不当な形式です", :allow_n…

ActiveHeartでエラーメッセージを日本語化

Ruby-GetTextを使うほうが推奨されているけどActiveHeartの使い方該当Model内でset_field_namesのハッシュを定義することで日本語化される set_field_names :name => "名前", :title => "タイトル", :body => "本文", :url => "URL"

Ubuntu 9.04にRuby on Railsインストール

Windows機にパーティションを切ってUbuntuをデュアルブートでインストールするとこから Ubuntu 9.04 Ubuntu Desktop 日本語 Remix CDのダウンロード | Ubuntu Japanese Team からisoファイルをダウンロード isoファイルをCD-Rに書き込む BIOS設定でCDドライ…

Online.sgに参加してきた

以前書いたOnline.sgに実際に参加してきたテーマは「続 Railsではてブもどきを作ろう」 過去の記事:Online.sg(仮)おもしろそう 第一回には参加できなかったので前回の分の作業も含めて作業の流れをまとめ Railsでソーシャルブックマークを作ってみようか…

Rails findメソッド:all,:firstの扱い

findする際の第一引数にあたる:all,:firstだがちょっと躓いた:allは名のごとく条件に当てはまるものを全件取得してくる :firstは条件に当てはまる中の最初の1件のみ取得してくる:allを指定した時点で結果が配列になって返ってくるというところで詰まった 特…

Railsのcreated_at,updated_atを無効にする

created_atは作成日時updated_atは更新日時のタイムスタンプを自動的に作成する 便利なものなのだがupdated_atの値を変更するときに厄介になったので無効にする方法ActiveRecordに自動更新の設定はあるのでそれを無効にしてしまう base.record_timestamps = …