「RailsでWikiクローンを作る」を見ながら作る

RailsWikiクローンを作る
http://tam.qmix.org/wiki/Minki00.html
これを参考にsqlite3ではなくてmysqlを使ってみる。

Windows Vista business
Rails2.0.2
Ruby1.8.6
mysql2.7.3
Aptana IDE(0.2.9.17048)

RailsWikiクローンを作る01

http://tam.qmix.org/wiki/Minki01.html

アプリケーション初期状態の作成

rails minki

名前を変えておく

rails wiki

データベースの準備

「db/create.sql」を新規作成する

#CREATE DATABASE wiki_development DEFAULT CHARACTER SET utf8;

drop table if exists pages;
create table pages (
id int auto_increment,
name varchar(255) not null,
title varchar(255),
freezeflag boolean,
updated_at datetime,
content text,
primary key(id)
);

コマンドプロンプトwikiフォルダに移動する

mysql -u root -p wiki_development < db/create.sql

なぜかエラーになるので、Mysql Query BrowserでDBとテーブル(てきとー)を作っておいてから、コマンドを再実行する。

ついでに「config/database.yml」を修正しておく

development:
adapter: mysql
database: wiki_development
username: root
password: ***********
host: localhost
encoding: utf8
timeout: 5000

他のtestとかもテキトーに修正する

RailsWikiクローンを作る02

http://tam.qmix.org/wiki/Minki02.html

generateによる生成

ruby script/generate model Page

database.ymlで記述ミスがあると「yaml.rbがerrorとなっております」と表示される。ymlのエラーにやっと気付く。

コントローラとビューの作成

Aptana IDEでも「ジェネレーター」で作成可能ですが、コマンドプロンプトで実行する

C:\Aptana IDE Beta\wiki>ruby script/generate controller Wiki new show exit list

rbファイルの編集はそのまんまなのでなし。

RailsWikiクローンを作る03

http://tam.qmix.org/wiki/Minki03.html

入力フォームの生成

#app/views/wiki/new.rhtml<%= start_form_tag :action => 'create' %>
<%= text_field 'page', 'name' %>
<%= submit_tag "Create" %><%= end_form_tag %>

エラーになったので修正する。


<% form_tag :action => 'create' do %>
<%= text_field 'page', 'name' %>
<%= submit_tag "Create" %><% end %>

layout

コントローラーにも宣言してあげないとセットされないんじゃないかな?

class WikiController < ApplicationController
layout "wiki"

ほいで、スタイルシート
tDiaryのCSSを使えるらしいので、Cloverテーマ(http://www.tdiary.org/theme.sample.rhtml?theme=clover)これを使ってみる
public/stylesheets/clover/clover.cssってな感じに配置する
app/view/layout/wiki.rhtmlのcssへのパスを修正する

<%= stylesheet_link_tag 'clover/clover.css' %>

ひとまずのデザインなので、課内で使うときのデザインの選定は別の人に依頼してしまう。

RailsWikiクローンを作る04

http://tam.qmix.org/wiki/Minki04.html

DBテーブルの検索

app/views/wiki/edit.rhtmlを修正しておく

<% @title = "#{@page.name} の編集" %>


<%= error_messages_for 'page' %><% form_tag :action => 'update', :id => @page.name do %>


<%= text_field 'page', 'title' %>



<%= text_area 'page', 'content' %>

<%= check_box 'page', 'freezeflag', {}, true, false %>

<%= submit_tag "保存" %><% end %>

RailsWikiクローンを作る05

http://tam.qmix.org/wiki/Minki05.html

LoadingModule

app/controllers/hiki というディレクトリを作って、そこに parser_default.rb と formatter_default.rb を入れておくと、Rails アプリ中で Hiki::Parser_default や Hiki::Formatter_default というクラスを使おうとすると、自動的にそれらのファイルを load してくれます。

ということなので、素直にDLして放り込む。

続く・・・