今日からWebLogic研修

今日の作業

RailsによるアジャイルWebアプリケーション開発
第2部 アプリケーションを構築する
ショッピングサイト
満足度の基準
→もう一度Webアプリを最初から作ることで理解しきれていないところを
解消していく。

わからなかったこと

database.ymlの項目の役割

明日やること

カタログの表示
カートの作成

今日の作業でわかったこと

今日からショッピングサイトを作り始めたがconfig/database.ymlの設定やtableの作り方が
ブックマークのときと違い苦労した。config/database.ymlについてはまだ項目の役割を
把握できていないので解決していきたい。

調べたことのまとめ

#28000Access denied for user ''@'localhost' (using password: NO)

解決策はconfig/database.ymlのusernameを""(空文字)は設定していないのでrootにする。

ブラウザで

http://localhost:3000/admin

を実行したら,また

#28000Access denied for user ''@'localhost' (using password: NO)

原因はサーバの再起動をしてなかったため

mongrel_rails restart

サーバの再起動

足りない列の追加

マイグレーションを使用
aptanaのGeneratorsでmigrationを選んでAddDateAvailableと名前を付け実行
db/migrateの下の002_add_date_available.rdの中身を

class AddDateAvailable < ActiveRecord::Migration
  def self.up
    add_column(:products, :date_available, :datetime, :null => false)
  end

  def self.down
    remove_column(:products, :date_available)

  end
end

に変更。そして
depot>rake migrate
をしてDBに反映。

参照
RailsによるアジャイルWebアプリケーション開発
(付録E)
http://www.amazon.co.jp/Rails%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%ABWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-%E5%89%8D%E7%94%B0-%E4%BF%AE%E5%90%BE/dp/4274066401

そして

depot>ruby script/generate scaffold Product Admin 

scaffoldのコードが古くなったので再生成でファイルを上書き

検証機能

モデルを通らずにDBから情報を取り出したり保存したりはできない。
よって検証機能を置く理想的な場所はモデル。

validates_presence_of :title, :description

validates_presence_of()メソッドは指定されたフィールドが存在し、
その内容が空でないことを確認する。

validates_numericality_of :price

指定されたフィールドが数値であるか確認。

validates_uniqueness_of :title

指定されたフィールドの名称が重複していないこと確認。

aptanaのapp/views/admin/list.rhtmlが上書き保存できない。
原因は

depot>sudo script/generate scaffold Product Admin

とsudoで実行したため所有者がrootになったため
解決策は

workspace> sudo chown m-matsumoto.m-matsumoto  depot/app/views/admin/*

で所有権の変更をする。