Railsの情報サイトです。メソッドを呼んでデータベースを更新する方法について解説しました。開発を行う上で非常に重要な概念です。ソースコードの全体です。}}まだ完成には程遠いのですが、すでに39行もあります。ソースコードを分割したいところです。分離するとすればどの部分でしょうか。メソッドの呼び出しを他のクラスに移します。モデルの「V」すなわちビューに当たるものなので、データの取得や更新に関わるコードを持たない方がいいのです。ここで登場するのがデータストアです。モデルの「M」に当たります。次のような内容で作成してください。}}データストアとは、その名の通り、データの格納庫です。クラスを継承して定義してください。メソッドを呼んでから、データの初期化を行ってください。メソッドの内容と同じです。1箇所だけ違いがあります。クラスの同名メソッドのコピーです。メソッドの役割については後述します。クラスのソースコードを次のように変更します。メソッドは全体を削除します。メソッドの中身はまったく別のものとなりました。プロパティにセットしています。メソッドに対して自分自身を引数として渡しています。この2行目が今回のお話しの核心です。コンポーネントが自分自身をデータストアに結び付ける(attach)ことにより、データストアの持つデータが変化したときに通知を受け取れるようになります。データストアが結び付けられたコンポーネントにデータの変化を通知することを、伝播(propagation)と呼びます。メソッドの説明を後回しにしました。このメソッドはまさにこの伝播を行います。メソッドが呼ばれます。データが変化するとコンポーネントが再描画されるのです。データストアには複数のコンポーネントを結び付けることができます。その場合、データストアはそれらのコンポーネントに対して順にデータの変化を通知していきます。別の見方をすれば、コンポーネント群がデータストアを「observe」しているとも言えます。この見方によれば、データストアが持つデータが変化したらコンポーネントが自分自身を再描画する、ということになります。メソッドの3行目では、次のように書いています。メソッドを呼んでいる点に留意してください。オブジェクトにおいて次のコードが実行されることになります。コールが行われ、データストアのデータ(this.tasks)が更新され、「伝播」が始まります。メソッドが呼ばれ、1回目の描画が行われます。ややこしいかもしれません。ソースコードを丹念に追って、処理の流れを理解してください。メソッドにも変更があります。次の抜粋をよく見てください。コンポーネント自身がデータを持つのをやめて、その役割をデータストアに委譲したので、このように変更しました。メソッドをデータストアに移した結果です。呼ばれ、データの変化がコンポーネントに「伝播」してきます。今回の変更によってアプリケーションの振る舞いは変化していません。カラムの値がデータベース上で変化することを確かめてください。次回は、タスクを新規追加するフォームを表示する方法について解説します。