14時から17時半まで作業しました。
デザインを変更とマイページにログインした人の名前が出るようにしました。
それから、先生にpdfwriterについて教えてもらいました。
pdfwriterをダウンロードし、実行できるか試してみましたが、うまくいかなかったので、また原因を考えようと思います。
Railsによるアジャイルwebアプリケーション開発のp293〜303を勉強しました。
・リクエストのルーティング
config/routes.rbに、アプリケーションのルーティング情報が書き込まれている。Routingコンポーネントはマップを生成し、このマップに従ってRailsは外部URLをアプリケーション内部に接続する。map.connect宣言は、外部URLと内部プログラムコードを接続するルートを指定する。map.connectのあとの文字列は、リクエストURLのパス部分との照合パターンとして機能する。
・URLの生成
url_for()メソッドは、そのパラメータをマッピングに適用してURLを生成する。その作業はコントローラとビューで行われる。
・コントローラの命名
コントローラはモジュールにグループ化できる。受け取ったURLによって、グループされているコントローラがパスと似た規則で識別される。
・名前付きルート
ルーティング定義でconnect以外の名前を指定するだけで、名前付きルートを作成できる。指定した名前がルートの名前になる。
13時30分から15時30分まで作業をしました。
・学生から管理ページが見れないように、フィルターをかけた。
・account controllerを変更
・RailsでPDFを作成するための方法を調査した
Railsによるアジャイルwebアプリケーション開発のp283〜293を勉強しました。
・オブザーバ
オブザーバは、それ自体をモデルクラスに透過的にリンクする。
オブザーバのソースファイルは、modelsディレクトリに置く。
・拡張属性
データベースから情報を読み込むとき、通常、属性ハッシュ経由でデータにアクセスはしない。属性メソッドを使用する。
しかし、テーブル内の列に対応しない値を返す問い合わせを実行した場合は、結果として得られる属性ハッシュでは、列見出しが属性ハッシュのキーとして使われる。
また、計算された列の値も文字列型として格納される。
・Facade列
一部の列が最適とはいえないフォーマットになっているスキーマを使わなければならない場合、アクセサメソッドをオーバーライドすればよい。
・オブジェクトの識別
未保存モデルオブジェクトの比較を行うと、たとえ異なる属性データを持っていようとも、同等であると判断される。
・IDが欠落しているケース
find_by_sql()を使用して列データのIDが得られなかった場合、その結果をデータベースに戻すことはできない。主キー列を必ず取得するべきである。
Railsによるアジャイルwebアプリケーション開発のp277〜283を勉強しました。
・コールバック
コールバックを実装するには、コールバックのインスタンスメソッドを直接定義するという方法と、ハンドラを宣言するという方法がある。
・レコードのタイムスタンプ処理
before_createコールバックとbefore_updateコールバックは、行のタイムスタンプ処理として使用できる。
・コールバックオブジェクト
すべてのコールバックメソッドをカプセル化するハンドラクラスを別に作成するという方法もある。これらのハンドラは複数のモデル間で共有できる。
Railsによるアジャイルwebアプリケーション開発のp257〜268を勉強しました。
・Acts As List
acts_as_list宣言を使用し、親から見て子をリストのように動作させる。
リストは子の一つひとつに位置番号を割り当てて実装する。
・Acts As Tree
acts_as_tree宣言によって、テーブルの行を階層型またはツリー型の構造で管理できる。
・集約
行データ自体をモデルオブジェクトにカプセル化するのと同様に、データベースの列情報の一部を上位レベルの抽象概念にマッピングする。
・値オブジェクト
それが作られた後でも、値が変更されないオブジェクト。
・単一テーブル継承
継承階層内のすべてのクラスを単一のデータベーステーブルにマッピングする。
RubyとRailsのバージョンをあげました。
presenceという名前のプロジェクトを作成し、データベースの作成もしました。そして、作成したプロジェクトをSVNにあげておきました。
_ データベースを作成した際に、少し失敗したようなので、今後原因を見つけて修正しないといけない。
以下のメッセージを削除するには、「設定」画面から「フッタ」を編集してください。