前回は、akelos導入、チュートリアル用のbooklinkをセットアップをしてbook/authorの追加、更新、削除までやりましたが、今回は、book/authorの関連付けです。
【book/authorモデル追記】
$ cd ~/booklink/
$ vi app/models/book.php
以下のようになるように追記
<?php
class Book extends ActiveRecord
{
var $belongs_to = ‘author’; // <- declaring the association
}
?>
$ vi app/models/author.php
以下のようになるように追記
< ?php
class Author extends ActiveRecord
{
var $has_many = ‘books’; // <- declaring the association
}
?>
【bookコントローラー追記】
$ vi app/controllers/book_controller.php
以下のようになるように追記
class BookController extends ApplicationController
{
var $models = 'book, author'; // < - make these models available
// … more BookController code
function show()
{
// Replace “$this->book = $this->Book->find(@$this->params[‘id’]);”
// with this in order to find related authors.
$this->book = $this->Book->find(@$this->params[‘id’], array(‘include’ => ‘author’));
}
// … more BookController code
}
【book form用テンプレート追記】
$ vi app/views/book/_form.tpl
以下のようになるように追記
< ?php echo $active_record_helper->error_messages_for('book');?>
< label for=”author”>_{Author}
< ?=$form_options_helper->select(‘book’, ‘author_id’, $Author->collect($Author->find(), ‘name’, ‘id’));?>
< label for=”book_title”>_{Title}
< ?php echo $active_record_helper->input(‘book’, ‘title’)?>
【book/author関連付け確認】
Webブラウザから http://XXXXXXXX/book にアクセス。
bookのeditを行ったとき、Author がプルダウンで選択できること。
bookのshowを行ったとき、Author の項目が表示されること
ここまでで本家のチュートリアルに出ているところまでできました。