RoR入門1

今日からはRuby on Rails入門。
redmineをカスタマイズしたり、プラグインを作ったりできるようになりたいのだ。
使用する教科書はこちら。

RailsによるアジャイルWebアプリケーション開発

RailsによるアジャイルWebアプリケーション開発


プロジェクトの作成。

rails プロジェクト名

コントローラの作成。
コントローラはApplicationControllerのサブクラスとして作成する。

ruby script/generate controller コントローラ名

作成されるコントローラ。

app/controllers/コントローラ名.rb

基本的なURLのつくり。

http://ドメイン名/コントローラ名/アクション名

指定したアクションの実行後に呼び出されるビュー。

app/views/コントローラ名/アクション名.html.erb

erbファイルに埋め込めるコード

<% 3.times do |count| %>
  <%= count %>
<% end %>

不要な改行コードを削除して出力するバージョン

<% 3.times do |count| -%>
  <%= count %>
<% end -%>

ヘルパーメソッドの数々。

<%= h("'&', '<'などをエスケープします") %>
<%= link_to "リンク文字列", :action => "アクション名" %>

コントローラのインスタンス変数にもアクセスできる。

<%= @hoge %>

DB接続設定のテスト。
schema_migrationsテーブルを参照してまだ適用されていないバージョンのマイグレーションを適用する。
マイグレーションが全くない時はschema_migrationsを見に行くだけなので?DB接続設定のテストができる。

rake db:migrate

テーブルの作成。

rake db:migrate RAILS_ENV='development'

SQLite ManagerなるFirefoxアドオンがあるらしい。
https://addons.mozilla.org/ja/firefox/addon/5817/
おお、すごい。
そういえば全然関係ないけどSQL DeveloperはOracle以外のDBにも接続できる。
Oracle専用だと思っていた。すごい。
足りない列の追加。

ruby script/generate migration add_列名_to_テーブル名 列名:型

さらに列のプロパティを追加する必要がある場合、マイグレーションファイルを編集する。

self.up
  add_column :テーブル名, :列名, :型, :precision => 桁数, :scale => 精度, default => 規定値
end
self.down
  remove_column :テーブル名, :列名
end


今日はここまで。