めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

実際にやってみよう(1)

Railsでソーシャルブックマークを作ってみようか(第2回) - 坊やがゆく」を実際にやってみようということで、やってみている途中

調べる

  • authenticatedってなんだろう?
    • Login_engineの代わりらしい。
  • migrateのdatetimeについて
  • mysqlの\Gってなに?

バージョン確認

rails -v
Rails 1.2.3

バージョンアップ

gem update rails

プロジェクトを始める

mkdir sample
cd sample
rails bookmark

文字コードを設定する

config/enviroment.rbを編集(ruby文字コード

先頭に入れるらしい。8行目に入れてみた

$KCODE = 'u'
app/controllers/application.rbを編集

app/controllers/application.rbを編集はしなかった。

データベースの設定をする

データベースの設定をする
vi config/database.yml
development:
  adapter: mysql
  database: bookmark_development
  username: root
  password: mysql
  socket: /tmp/mysql.sock
  encoding: utf8
データベースを用意する
create database bookmark_development default character set utf8;

pageモデルを用意する

ruby script/generate model page
db/migrate/001_create_pages.rbを編集
def self.up
  create_table :pages do |t|
    t.column :uri, :string, :limit=>1024
    t.column :title, :string, :limit=>1024
  end
end

acts_as_authenticatedプラグインをインストール

ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/acts_as_authenticated

userモデル/accountコントローラの作成

authenticatedってなんだろう?

ruby script/generate authenticated user account

bookmarkモデルを用意する

ruby script/generate model bookmark
vi db/migrate/003_create_bookmarks.rb
class CreateBookmarks < ActiveRecord::Migration
  def self.up
    create_table :bookmarks do |t| 
    t.column :user_id, :integer, :null => false
    t.column :page_id, :integer, :null => false
    t.column :comment, :string, :limit => 1024
    t.column :created_at, :datetime
    end 
  end 

  def self.down
    drop_table :bookmarks
  end 
end

DBに反映する

rake migrate