小さなアプリケーションで作業しているときに、コード設計の問題が発生しました。(ちなみに私は初心者です)
機能面では、それぞれ2席のテーブルのリストがあります。2人のプレーヤーが同じテーブルに座ると、ゲームが始まります。
この部分には、テーブルコントローラー、テーブルモデル、およびゲーム状態モデルがあります(ゲーム状態を作成すると、ゲームが開始されます)。
ユーザーが座ると、テーブルコントローラーによって処理されるajaxリクエストが発生します。このコントローラーは、テーブルモデルの適切なメソッドを呼び出して座ります。テーブルモデルが両方の席が埋まっていることを発見すると、ゲームが始まります。これは難しい部分です。
テーブルモデルでゲーム状態モデルを呼び出すのは面倒で、誰がゲーム状態モデルを呼び出すのかを追跡するのが後で難しくなる可能性があるため、私は望んでいませんでした。そこで、テーブルモデルが:success => trueハッシュをテーブルコントローラーに返すようにしました。テーブルコントローラーは、ゲーム状態モデルを呼び出すかどうかを決定します。
しかし、それから私はロジックをコントローラーに入れていることに気付きます。これはRails3Wayによればノーノーです。
私よりも経験豊富な人に、私に何ができるか教えてもらえますか?
また、「ユーザーがパーツを切断するとゲームを没収する」という問題もあります。現在、ユーザーは、アプリがまだ接続されていることを知らせるためにテーブルコントローラーをプルします。そして、その部分にゲームの没収を処理させることは、厄介で結合しているように見えます。
さらに、モジュール化を維持するために、JavaScriptコードにリソースのタイプごとに1つのsetIntervalプルを実行させています。しかし、その結果、間隔ごとに6〜7個の異なるAJAXリクエストを作成しています。そして、それは非効率的なようです。