Railsでソーシャルブックマーク的なものを作る-その2-
プラグインのインストールの続きから。
Rails1.2ではpaginationとして本体に組み込まれていた機能が、2.0ではplugin化されたのでpagination_findをインストール。あと、自分はprototype.jsよりjQuery.js大好き人間なのでjRailsというpluginをインストールします。
DB構築
今回は超簡単なテーブル構成なのでmigrationファイル(schema.rb)をさくっと書く。
こんな感じで。
ActiveRecord::Schema.define() do options = { :force => true, :options => "type=myisam default charset=utf8" } create_table "bookmarks", options do |t| t.string "title", :default => "", :null => false t.string "url", :default => "", :null => false t.text "user_comment" t.integer "rating" t.text "delimited_tags" t.integer "lock_version", :default => 0, :null => false t.timestamp "created_at" t.timestamp "updated_at" end add_index "bookmarks", ["url"], :name => "IDX_URL", :unique => true add_index "bookmarks", ["title"], :name => "IDX_TITLE" execute "CREATE FULLTEXT INDEX IDX_TAGS ON bookmarks(delimited_tags)" end
2点小細工してます。
テーブルが多い場合はDBDesigner8でER図を描いて、Mysqlデータベースに反映。それから次のコマンドでschema.rbを作成しています。
rake db:schema:dump
db/schema.rbができたら rake db:schema:load で完了。
scaffold
eclipseの「Generators」タブで Generator:scaffold を選択して Parameters:の欄は次の通り指定
bookmark title:string url:string user_comment:text rating:integer tags:text lock_version:integer created_at:timestamp updated_at:timestamp
出来たらwebrickを起動、http://localhost:3000/bookmarks/ にアクセスして動作確認をする*2。
controller作成
トップページのcontorollerを作る。
eclipseの「Generators」タブで Generator:cotoroller を選択して Parameters:top と入力してGo!!
route.rbの設定
一画面構成のアプリなので次の行だけ追加。
コントローラ名を top とした場合。
map.root :controller => "top", :action => 'index';
コーディング
気ままにコーディング。
pluginがちゃんと動かない場合はハックしまくる!!ソース見て直せばいい。
続きはこちら。
Railsでソーシャルブックマーク的なものを作る-その3-
http://d.hatena.ne.jp/hagino_3000/20080410/1207841527