タイトル倉橋浩一、じつはWebObjectsで飯食ってます》掲示板を機能アップして複数の掲示板に対応(4)問題点の解決と余談とカテゴリーWebObjects, 倉橋浩一、じつはWebObjectsで飯食っています
作成日2001/10/30 17:21:43作成者新居雅行
□問題点を解決する
ここまで操作してきて、二つほど問題がありました。

1.メッセージを登録しても、すぐにメッセージ一覧に表示されない(一度、掲示板名一覧に戻らないと表示されない)。
2.掲示板にメッセージを登録した後でその掲示板を削除すると、掲示板名のないメッセージが残ってしまう(キーワード検索機能で表示される)。

1.は、MessageListPageのdgMessageの「fetch on load」をoffにしたせいです。setBoardでfetchしているために不要になったのですが、MessagePageから戻ってくる際にはsetBoardが呼び出されないのでデータが取り込まれず、このような現象が起きました。これを解決するために、MessagePageから戻ってくる際にもsetBoardを呼び出すようにします。そのためのコードがこれです。

nextPage.setBoard(board);

3箇所で使っています。boardも新しく追加した変数です。boardには現在処理の対象となっている掲示板をセットしておく必要がありますので、setNewMessageの中でこのためのコードを追加します。

board = (EOEnterpriseObject)newMessage.valueForKey("board");

最後にboardの変数定義を追加します。

public EOEnterpriseObject board;

これでbuild&runすると、メッセージを書き込んだ後にもちゃんと一覧に反映されるようになりました。いや、これが当たり前なんですが(笑)。

問題点の2.はEOModelの設定によるものです。EOModelにはリレーション先(あるいはリレーション元)を削除した時に、自分自身(あるいはリレーション先)をどうするか、という設定ができるようになっています。リレーションを作ったときに定義していませんでしたので、今ここで設定しましょう。SimpleBoard.eomodeldを開いて、EntityのBoardをクリックし、arrayMessageをクリックし、cmd+Iをタイプします。すると、リレーションに関するインスペクタが表示されます。

 

インスペクタの上の方に3つ並んでいるアイコンのうち、中央のアイコンをクリックすると、目的のパネルが現れます。

 

ここで"Delete Rule"の中の"Cascade"を選択します。初期状態のNullifyではリレーション元(この場合はboard)が削除された時にto manyリレーションの先にあるmessageは消えず、message.boardがnullになるだけでしたが、Cascadeに設定するとリレーションの先にあるmessageが消えます。

□次回
というわけで、だいぶ掲示板らしくなってきました。次回は、これにコメントの機能を追加します。コメントツリーが華々しく表示されるようなものではありませんが、これで掲示板としての基本機能がすべて揃うことになります。

□例によって雑談
先日、肩が上がらなくなりまして。私はこの原稿を書いている時点ではまだ30代なのですが、いわゆる四十肩というやつです。これは慢性化しちゃうと本当に辛くて、茶わんを持つのがやっと、腕が水平より上に上がらなくなる、上着の袖を通すのに脂汗が流れる、ぐらいひどくなってしまうのだそうです。
四十肩は何らかの原因で負担がかかったために肩関節およびその周囲が炎症をおこしたものです。その炎症は、肩の外側にある三角筋と内側にある小胸筋などの働きの不均衡によって起こるという説があります。歳とともに内側の筋肉が衰えて起きるのが本来の(?)四十肩ですが、私ら「若い」デスクワーカーの場合には、同じ姿勢を取っていることや冷房の効き過ぎで外側の筋肉が緊張してしまったために起きることもあるようです。
そういえば、私は過去2回ほどそういう症状になったことがありましたが、最初は香港の空調のおかしいホテルに泊まっていた時、二度めは仕事部屋に大荷物が届いたせいで冷房の風下に座っていた時でした....若い頃は冷房に当たりすぎようが何しようがどうということなかったんですけども。香港で症状が出た時は本当に痛くて、観光協会で鍼灸の先生を紹介してもらいました。葉巻きみたいなお灸を近付けて患部を暖めるだけの治療でしたが、1時間ほどで痛みは消えてしまい、治療院からの帰りには地下鉄のつり革にぶら下がっていたもんです(マッサージ込みで5000円くらい)。仕事部屋の時も最初は原因がわからなかったんですが、香港でのことを思い出し、肩の周辺を暖めるツボにいくつかお灸(実は私は鍼灸マニア)をすえて、保温パッドで首から肩にかけて暖めたところ2日ぐらいで痛みは治まりました。
職業がら、肩こりなどで悩んでいる方は少なくないと思いますけども....風邪っぽくなると特に首から肩がだるいという方は、ぼんのくぼの辺りにあるツボを蒸しタオルや保温パッドなどで暖めてみてください。きっとラクになります。漢方ではこの辺に風邪の邪気が集まるとされていて、体が冷えた場合の諸症状を緩和するのに役立ちます。西洋医学的には拝むように手をあわせてぐっと力を入れる体操などで内側の筋肉を鍛えてやることで、長期的に症状を改善することができるようです。
(この項、以上)
[倉橋浩一/テクニカル・ピット]
関連リンクWebObjectsのページ