非常に大事なことが抜けていました
それはデフォルトのDBがSQLite3になっていることです
ここで大きな落とし穴があり、普通に考えてsqlite3とそれをrubyで扱うためのsqlite3-rubyをインストールすれば準備OK…かと思いきや
まちゅダイアリー – Rails + sqlite3 の落とし穴
どうやらswigというパッケージがないとsqlite3は真の力を発揮出来ないようです
Linuxでは普通にswigを入れればいいだけなのですが…
経験として、自分の環境(MacOSX Leopard)では合計200以上の依存を解決しなければswigが入りませんでした
#portsの場合…恐らくfinkも同じかな?
Macでrails2.xをsqlite3で使いたいという方は非常に面倒なことになるかもしれません;
swigを入れてからはsqlite3をapt(yum)で入れ、sqlite3-rubyはgemで入れます
そうしてようやくrailsのインストールに入るのです;;
今はrailsでマイクロブログを作っているのですが、
本家twitterのように空の内容を投稿されても無視するようにしたかったので調べました
railsではコントローラでrenderメソッドを用いて描画を制御出来るのですが、そこで
render :nothing => true
とすることで描画しない、ということが可能です
今回は投稿を保存するメソッド内で保存に失敗したら描画しないというようにしました
〜以下保存部分抜粋〜
if @post.save
render :text => ‘保存した内容’
else
render :nothing => true
end
こんな感じで使ってます
空かどうかなどはsave時のvalidationで判断します
昨日に引き続き2.x系のインストール方法まとめ
CentOS5.2で確認
まっさらな環境から始めたわけではないので色々不足している物があるかもしれません;
・openssl-develのインストール(debianではいらないかも)
※openssl-develが無い状態でruby入れちゃうとrubyのインストールし直しになるので要注意!
$ sudo yum install openssl-devel
・rubyとrubygemsの最新版ソースをビルド
wget等でダウンロードし解凍
rubyは、
$ ./configure
$ make
$ sudo make install
rubygemsは、
$ sudo ruby setup.rb
・railsインストール
$ sudo gem install rails –include-dependencies
・以下1.2.6と同様の手順で動作確認
最近使用しているRubyOnRailsのインストール方法を簡単にまとめました
#以下では(楽だったので)1.2.6を入れていますが、今なら最新の2.x系の方がいいと思います
#2.x系をインストールするにはaptでインストールされるものより新しいrubygemsが要求されるため、debian等ではソースからビルドする必要があります
Macの場合は以下の記事が参考になります(Leopardは最初からrails1.2.6がインストールされています)
http://japan.cnet.com/blog/kenn/2007/12/19/entry_25003169/
apt(debian)系での場合
・ruby rubygemsをインストール
$ aptitude install ruby rubygems
・gemでrailsをインストール
$ gem install rails –include-dependencies –version 1.2.6 -y
・railsにパスを通す
ホームディレクトリ直下の.bash_profileに、
export PATH=$PATH:/var/lib/gems/1.8/bin
と書き込む
・railsの動作確認
rails -v
(Rails 1.2.6と表示されればOK)
・動作確認
適当なディレクトリで、
$ rails test
とするとtestディレクトリが作られ、その中に最低限のファイルが作成される
$ cd test
でそのディレクトリに移動し、
$ ruby script/server
でrails用のWEBサーバが起動され、http://domain or ip:3000/ でアクセスできる
(Ctrl-Cでサーバの終了)
環境はUbuntu7.10
必要なものを一括でインストール(ruby1.9は多分rubyでもいい)
# sudo aptitude install ruby1.9 rubygems openssal-ruby
railsはaptで入れると問題が出るらしい(→参考)ので、gemで入れる
# gem install –remote rails –include-dependencies
–remoteを知らなくってちょっと手こずった;
そして適当にシンボリックリンクを張る
# sudo ln -s /var/lib/gems/1.8/bin/rails /usr/bin/rails
# rails -v
これでrailsのバージョンが出れば問題なし
この間のNetBeansと合わせてRoRの開発環境はこれで問題無しかな?