2010年5月14日金曜日

Rails(3beta3) で国際化(I18n) その1

Rails3 で国際化を試していく。
自分の中でもあやふやだった部分を潰していく。(ブラウザの言語設定は本当に参照できないのかとか)

テスト用の MVC を生成して確認していく。
$ rails g scaffold state code:string, name:string


ブラウザの言語設定で判定する場合
HTTP_ACCEPT_LANGUAGE を参照する。

# app/controllers/application_controller.rb
before_filter :set_locale
def set_locale
I18n.locale = request.env['HTTP_ACCEPT_LANGUAGE'].split(",").first
end

URL で判定する場合

# app/controllers/application_controller.rb
before_filter :set_locale
def set_locale
I18n.locale = params[:locale]
end


# config/routes.rb
scope "/:locale" do
map.resources :states
end

$ rake routes
GET /:locale/states(.:format) {:action=>"index", :controller=>"states"}
states POST /:locale/states(.:format) {:action=>"create", :controller=>"states"}
new_state GET /:locale/states/new(.:format) {:action=>"new", :controller=>"states"}
GET /:locale/states/:id(.:format) {:action=>"show", :controller=>"states"}
PUT /:locale/states/:id(.:format) {:action=>"update", :controller=>"states"}
state DELETE /:locale/states/:id(.:format) {:action=>"destroy", :controller=>"states"}
edit_state GET /:locale/states/:id/edit(.:format) {:action=>"edit", :controller=>"states"}

URL パラメータで判定する場合
ロケールの選択は上記URL で判定する場合と同様で before_filter で行う。
rails で生成する URL には自動で現在設定されているロケールを付け足す。

# app/controllers/application_controller.rb
def default_url_options(options={})
{ :locale => I18n.locale }
end

routes は普通の設定で問題ない。(ってかこっちじゃないと動かない)

# config/routes.rb
map.resources :states

ドメインから判定する方法もあるらしいが、com などだったらどうするんだろう?
と、いうことでドメインはぱす。
RESTful で考えると URL か URL Param になる。
が、やっぱりブラウザの言語設定で判断したいかな。

参考
http://guides.rubyonrails.org/i18n.html

2010年5月12日水曜日

ubuntu 10.04 で Ruby on Rails(環境構築編)2

$ rails example
$ cd example
$ rails g scaffold test code:string name:string
$ rake db:migrate

を実行後、config/application.rb をつついて
$ rails s

を実行し、http://localhost:3000/tests にアクセスすると
なにやら怪しげなエラーが発生した。

google先生に質問したところ、英語で
「1.9.1 は非サポートなんで、1.9.2 を使ってね」
と、いうありがたい回答をいただいた。

なのでまた環境構築しないと。。。

□ruby1.9.2のインストール準備
$ sudo apt-get install subversion
$ sudo apt-get install autoconf

□ruby1.9.2のインストール
$ rvm install ruby-head

ruby1.9.2はheadからインストールしないと、rails3は動かない。
preview1では実際 scaffold できなかった。(ruby BUG)

以上。

2010年5月10日月曜日

ubuntu 10.04 で Ruby on Rails(環境構築編)

rvm で ruby をインストールするとすさまじく楽勝。
ただし、事前セットアップがかなり必要なため、そこをメモしておく。

* よく分からないがおそらく ruby インストール前にインストールしておく必要アリ。

□事前セットアップ
$ sudo apt-get install gcc
$ sudo apt-get install build-essential
$ sudo apt-get install bison byacc gperf
$ sudo apt-get install zlib1g-dev
$ sudo apt-get install libreadline5 libreadline5-dev
$ sudo apt-get install libncurses5 libncurses5-dev
$ sudo apt-get install libssl-dev
$ sudo apt-get install sqlite3 libsqlite3-dev
$ sudo apt-get install curl
$ sudo apt-get install git-core


最新が入っていますといわれるものは無視する。
上記パッケージをすべてインストールした状態で
$ rvm install 1.9.1
とかする。

□rails(3 beta3) インストール
$ gem install rails --pre
$ gem install sqlite3-ruby


これで rails3 beta3 が完動する。(rails cも含めて)
もちろん rails g scaffold も動く。
rvm さまさまである。
自力でインストールした際は GEM_PATH の設定や、bindle のエラーなどではまりまくったがすんなり動くところまでたどり着いた。

明日から rails3 使ってみよう!

以上。

ubuntu 10.04 で Ruby(環境構築編)

複数バージョンの Ruby が簡単に切り替えられる rvm を使う。
□必要なもののインストール
1.git
$ sudo apt-get install git-core

2.curl
$ sudo apt-get install curl

3.zlib(開発環境)
$ sudo apt-get install zlib1g-dev

□rvm のインストール
1.github からソースのダウンロード
$ mkdir -s .rvm/src
$ cd .rvm/src
$ git clone git://github.com/wayneeseguin/rvm.git
$ cd rvm
$ ./install


□インストール後に表示されるメッセージに従い、.bashrc を変更
$ vi ~/.bashrc

先頭行に追加
if [[ -s /home/◯◯/.rvm/scripts/rvm ]] ; then source /home/◯◯/.rvm/scripts/rvm ; fi

□1.9.1インストール
$ rvm install 1.9.1

□1.8.7インストール
$ rvm install 1.8.7

各バージョンを利用する場合は
$ rvm 1.9.1

すばらしいな、これ。

2010年5月6日木曜日

ubuntu 10.04 を VMware へインストール

VMware player に ubuntu 10.04 を新規簡易インストールした際
ログイン画面で文字入力ができなくなった。
ググってみたが話題には上がってなかったためメモ。

原因は VMware へインストールする際のバグらしい。

以下の方法で対処。

1.ログイン画面の右下で再起動を選択。
2.再起動中、shift キーをずっと押し続けておく。
  (GRUB ブートローダを起動するため)
3.recovery mode を選択。
4.Recovery Menu の root(Drop to root shell prompt) を選択。
5./etc/default/console-setup を vi で開いて編集。
  以下の項目を編集

XKBMODEL="hhk" # SKIP
XKBLAYOUT="jp,us" # us
XKBVARIANT="," # U.S. English

XKBMODEL が SKIP なのが問題のよう。ここだけ hhk にしても大丈夫。
残りの項目はログイン時のデフォルト設定っぽい。
XKBLAYOUT => keybord
XKBVARIANT => language

google 先生が答えてくれなかったのはたぶん世間一般は
9.10 からアップデートしているんだろうな。

以上。

2009年7月2日木曜日

使った参考書など

勉強期間は3.5ヶ月(1月~4月中旬まで)
平日+土曜日は短い時間でも机に向かうよう努力し、日曜日はまったく勉強しなかった。週休2日制のため土曜日は1日中勉強した。(と、いっても10~17時くらいまでだけど)

最初に購入したのは「情報処理教科書 2009年度版」。
選んだ理由は支持率No1の触れ込みと、パラパラめくってみた印象で購入。
「情報処理教科書 2009年度版」で一通りの基本事項を理解。
・1~3正規化(ボイスコッド,4,5はざっくりと理解)
・SQL
時間をかけてじっくりやったのは上の2点のみ。あとのジャンルは過去問をひたすら解いて覚えるスタンスでこなした。
正規化については過去問でも必須で取り上げられるため、決まり文句的な説明もしっかり覚えた。第2正規化の条件は「すべての属性が単一値であり、候補キーに非キー属性が関数従属している」など。

つづく。

2009年 データベーススペシャリスト合格

更新が長い間とまってました。
なぜかというと情報処理の勉強をしていたため。
今年受けたのはデータベーススペシャリスト。
去年の秋に最後のソフトウェア開発技術者を受験して合格、夢の高度情報処理試験への デビュー戦。

そして結果はなんと

合格


本当にビックリ!

今度はネットワークにチャレンジする予定。
これからデータベーススペシャリストに挑む人のために自分の体験記などをしばらく投稿しよう。
体験記でも読んでいるとためになったり、自分のやっていることに自信がもてたり、 軌道修正できたりすると思うから。

いぁ~、うれしい (^o^)