Railsを使ってみる
↓のサイトを見ながらソーシャルブックマークを作ってみました。Rails2.0で変更した点をメモしておきます。
坊やがゆく - Railsでソーシャルブックマークを作ってみようか(第2回)
DBはMySQLではなくsqlite3を使うので、「モデル作成」から始めました。sqlite3はあらかじめDBを作成しておかなくても、初回アクセス時にDBが作成されます。
モデルの作成
モデルの作成では、スクリプトでフィールドを指定して作成しました。
ruby script/generate model page uri:string title:string
その後で、migration用のファイルを開きlimitを追加しました。スクリプト実行時に指定する方法があるのかもしれませんがわからなかったので。あと、"t.timestamps"という列が自動で追加されるので削除しておきます。これをDBに反映させるとcreated_atとupdate_at列が自動で作成されます。Pageにもcreated_at列があると後のリレーションの設定のときのorder byの指定で問題になるんで削除しておきます(order byでテーブル名を指定してもOKです)。
class CreatePages < ActiveRecord::Migration def self.up create_table :pages do |t| t.string :uri, :limit=>1024 t.string :title, :limit=>1024 end end def self.down drop_table :pages end end
比べてみるとmigration用ファイルの書き方もちょっと変わっているんですね。
bookmark用のモデルも同様に生成してからDBに反映させます。コマンドがちょっと変わってました。
rake db:migrate
ビュー作成
ビューの作成では、まずファイル拡張子が".rhtml"から".html.erb"に変わっているようなので、すべて読み替えます。
また、bookmarkビューを編集にて、formタグを生成するform_tagとend_form_tagの部分を以下のように変更しました。
<%form_tag do%> <dl> <dt>URI</dt> <dd><%= text_field_tag "uri", @page.uri, :size => 40 %></dd> <dt>タイトル</dt> <dd><%= text_field_tag "title", @page.title, :size => 40 %></dd> <dt>コメント</dt> <dd><%= text_field_tag "comment", @bookmark.comment, :size => 40 %></dd> </dl> <p><%= submit_tag %></p> <% end %>
とりあえずこんな感じで動きました。Rubyの文法に不慣れで何をしているかわからない部分はあるのですが、かなり簡単にできました。基本的にコピペなので当然ですが。
しかし、viewの部分がスクリプトレット全開な感じなのはこういうものなのでしょうか。。