2011-01-01から1年間の記事一覧

【Emacs】EmacsLisp 超基礎

RubyをEmacsで開発されている方も結構いるのではないでしょうか。 わたしもRinari超便利だよー(*´ω`*)っていう記事を読んで興味を持ったので、 久々にEmacs触っています。 で、動かすためにEmacsLispをネットからコピペして使ったりするのですが、、、 はて…

【Rails3】デフォルトポートを変更する

Railsでは、"rails s" コマンドを叩くとデフォルトポートである3000番で起動します。 "rails s -p 3001"のようにポート番号を指定することで明示的に使うポートを設定することも出来ますが、 「このアプリは"rails s"って打ったら無条件に4000番ポートで起動…

[Ruby1.9]Ruby1.8とRuby1.9で、同時にユニットテストを実行する

Ruby1.8.7が2013年6月でサポート打ち切りだそうです。 一方でRuby1.9系の方も、1.9.3のリリースが間近になるなどだんだん枯れてきてるみたいですね。 、、、、Ruby1.9系への移行に失敗した人挙手(´・ω・`)ノシ 、、ほらもっといるだr(ryわたしは、String廻…

【Ruby】lambdaって何?

Railsでnamed_scopeってありますよね。モデルクラスの中で scope :hoge, lambda{|value| where("name = ?", value)} みたいに記述しておくと、 Model.hoge('myname') と書くだけでname = mynameなレコードを引っ張ってきてくれる強力なやつです。 、、、、。…

【Ubuntu】rubygemsのupdateに失敗する対策

rubygemsをアップデートするとき、 gem update --system なんてしますよね。でもUbuntu(Debian)ではこのコマンドが無効化されています。Debianのパッケージシステムであるapt-getが上書きしてしまいrubygemsの不整合が起きてしまうのが原因で無効化している…

【Mac/Ruby】Xcodeでerbファイルのシンタックスハイライト

「RubyはWindowsより*nixで動かしたほうが速い…」という話を聞いて、 最近Rubyの開発をMacでするようになりました。ここで困るのがテキストエディタ。 Windowsではサクラエディタとか秀丸とか、枯れてるのが色々あるんですけどね。。(´・ω・`)ということで…

【Ruby】フォルダ・ファイル操作

よく「フォルダ内のファイル全部に~する」みたいな処理を書いていたのですが、その都度Rubyのリファレンスとにらめっこしていました。(´・ω・`)RubyStudyRoomさんの「ディレクトリを再帰的に走査するDir.globとFind.find」という記事がよくまとまっていて勉…

【Ruby】QRコードを生成する

QRコードを生成するRubyライブラリはいくつかありますが、 依存ライブラリをコンパイルしないと動かなかったり煩雑な気がします。そんな中で、rqrというライブラリは、 libjpeg、libpng、libtiffというライブラリに依存しているものの、 どれも標準的なライ…

【Ruby】インストールしたGemライブラリの場所を調べる

デバッグなどで、Gemソース中身を見たいことってありますよね。 でもGemは、Windows/Linux/MacOS/RVM有無などでインストールされる場所が異なるので、 「あれーどこだっけ(´・ω・`)」 となりがち。そんな時はgem which コマンド。例えばrails のソースを見…

【Rails3】Scaffoldの文法

rails g scaffold item name:string body:text price:integer みたいな感じなので、Model作成の時と同じです。 「変数名:変数型名」という表記は、UMLと同じ表記法!と覚えておけば忘れないでいいと思います。

【Rails3】Production環境で実行する

railsコマンドでは、 -eオプションでproductionを設定します。 例: rails s -e production rakeコマンドでは、環境変数RAILS_ENVにproductionを設定します。 例: rake RAILS_ENV=production db:migrate

【Rails3】Modelにデフォルト値を設定する。

Model(ActiveRecord/ActiveModel)で、メンバ変数にデフォルト値を指定したい場合、 マイグレーションファイルにハッシュとしてデフォルト値の設定を行います。 myvalueカラムのデフォルト値を0にしたい場合は、下記のとおり。 class CreateMyvalues < Active…

【Unix】ログファイルをリアルタイムに確認する

開発してる時に、「今どんなログが出力されてるのかな〜」って気になることないありませんか?よくやるのが、「処理終了まで待って、おもむろにログファイルひらいて、、、」って感じですよね。 これUnixだとリアルタイムに確認出来るんですよ!(←初心者丸出…

【Rails3】時刻比較の注意点

Railsでは、「データベースには時刻を標準時で格納しておき、 表示する際には指定したタイムゾーンで表示する」 という考え方を採用しています。ですので、時間を管理する際は、タイムゾーンを意識しなくてはなりません。といっても、普段はモデルクラスさん…

【heroku】ローカルDBをherokuに反映する

ローカルで開発していて、つくりこんだデータベースをそのままherokuで使いたい時は、 heroku db:push を使います。 ローカルDB:PostgreSQL ホスト名:localhost DB名:app_development ユーザ名:postgres パスワード:passwd の場合は、下記のようにかけ…

【Ruby】Microsoft Wordを操作する

MS Wordのワードファイル(.doc)を操作することって結構あると思います。 テンプレートになるファイルを用意して、そこにDBから取ってきた値を書きこんで、、みたいに。 Word2003からはXML形式(.docx)でで記述できるのでだいぶ楽になるのですが、 大人の事…

【PostgreSQL】エラーメッセージの文字化けを直す

WindowsでPostgreSQLを使っていたところ、Railsからこんなエラーが出てきました。。 (´・ω・`) PGError: ERROR: 蛻・findtime"繧貞梛"timestamp without time zone"縺ォ繧ュ繝」繧ケ繝 どうやらSJISでエラーメッセージを吐いているのに、Rails側はエラーをSJISだ…

【Rails3】DB内のデータ指定の仕方

colname が変数valueのものを抜き出す場合: ModelClass.where("colname = '#{value}'") とか ModelClass.where("colname = ?", value) とか。 テーブル全体から検索する場合、Rails3から「where」というメソッドを使えるようになっています。よく使うのでイ…

【Rails】Controllerで重い処理を実行する

(Controllerに限らないですが)重い処理があると、htmlレンダリングはその処理後に行われるためユーザにはフリーズしたように見えてしまいます。(´・ω・`) 〜コントローラで〜 def heavyTask #重い処理 sleep(1000) end 、、、1000秒待たないと画面が表示さ…

【Rails3】カラムの追加をワンライナーで書く

特にプロトタイピングしている時などに、テーブルにカラム追加したくなること、よくありますよね?よね? よくあることはワンライナーで楽しましょう。 $ rails g migration AddColnameToTablename colname:string これでおK(`・ω・´) え、最初にちゃんとテ…

【Rails3】カラム名を変更する

2つ方法があります。 (1)マイグレーションをテーブル追加前に戻しテーブル名を変更の上再度マイグレーションする。 (2)カラム名を変更するマイグレーションを新規に行う。 「カラム名間違えたぁぁあ!(´A`#)」ぐらいなら(1)、開発を進めてしまっていたら(2)…

【Rails3】カラム名に使ってはいけない予約語を調べる

カラム名に「type」を使ったところ、以下のようなエラーが出てしまいました。 ActiveRecord::SubclassNotFound (The single-table inheritance mechanism failed to locate the subclass: 'news'. This error is raised because the column 'type' is reserv…

【Rails3】Rails2系のscript/◯◯を使う

・Railsをコンソールで実行したい(script/console): $ rails console・Rails内のメソッドをコマンドラインから実行したい(script/runner) $ rails runner

【Rails3】RSpecを使う

(1) gemfileに以下の記述を追加 group :test, :development do gem "rspec-rails", ">= 2.3.0" end(2)gemのインストール $ bundle install(3)フォルダ作成、およびヘルパ関数のインストール $ rails g rspec:install 以上の設定がされていると、 $ rails g m…

【Rails3】モデルを生成する

$ rails g model Modelname・DBでは「Modelnames」という複数形のテーブル名になる。 ・モデルはClassなので、1文字目が大文字英数で指定する。スキャッフォルドとして作る場合には、 $ rails g scaffold Modelname

【Rails3】Railsの起動・処理を早くする(mongrelの利用法)

ローカル環境でRailsを実行する際、ウェブサーバとしてWebrickとMongrelが選べるが、 Mongrelを利用したほうが高速。$gem install mongrelした上で、"Gemfile"に gem 'mongrel'を追記すれば、Mongrelが使われるようになる。 【追記】 そうは言ってもWindows…

【heroku】Ruby1.9.2を使う

$ heroku stack するとリストが表示される aspen-mri-1.8.6 > bamboo-ree-1.8.7 bamboo-mri-1.9.1 (beta) bamboo-mri-1.9.2 (beta)ここで切り替えコマンドを打つ: $ heroku stack:migrate bamboo-mri-1.9.2その後 $ git push heroku master で変更を更新す…

【Rails3】プロジェクトを作成する

$ rails new myproject ※うっかり2.3までの環境でこのコマンドを打つと、 「new」というプロジェクトが出来てしまいショボーン(´・ω・`)としますね。 herokuを使う場合、DBがPostgresSQLになるので-dオプションでDBを指定しちゃうのがお勧め。 $ rails new …