私はSearch
モデルとコントローラを持っています。ビジネスロジックは、ユーザーのキーワードが商品のモデル番号と完全に一致する場合は、それらを商品ページにリダイレクトすることです。良い習慣 - モデルのリダイレクト? - レール3.1
この状況では、モデルの内部からリダイレクトするだけで済みます(ほとんどのロジックはすでに存在しています)。
リダイレクトを処理できるように、フラグや何かをコントローラに返す必要がありますか?
私はSearch
モデルとコントローラを持っています。ビジネスロジックは、ユーザーのキーワードが商品のモデル番号と完全に一致する場合は、それらを商品ページにリダイレクトすることです。良い習慣 - モデルのリダイレクト? - レール3.1
この状況では、モデルの内部からリダイレクトするだけで済みます(ほとんどのロジックはすでに存在しています)。
リダイレクトを処理できるように、フラグや何かをコントローラに返す必要がありますか?
モデルオブジェクトは、リダイレクトを実行しません。アプリケーションロジックはコントローラの義務であるため、コントローラは、製品がモデル番号と一致するかどうかをモデルオブジェクトに(要求の結果として)尋ね、コントローラがリダイレクトを実行する必要があります。モデルオブジェクトはコントローラやビューについて何も知ってはいけません。これは、Railsによって実装されている"Model-View-Controller concept"の一部です。
RailsはモデルをActiveRecord patternとして実装しているため、モデルオブジェクトがデータベースを担当し、データベースに検索が含まれていることは間違いありません。何がモデルオブジェクトの責任であるか見るには、Rails Guides for ActiveRecord Queriesにある多くのオプションを参照してください。
必ずMVCパターンを覚えている:MVC in Rails
モデルは、リダイレクトまたはコントローラに関連するいくつかの他のものの世話をしてはなりません。リダイレクションをコントローラに任せる。
モデルにrun_search機能を持たせても問題ありません。複数のモデルにまたがってdbを検索したり、コントローラにも同様の操作をさせることをお勧めしますか? – Jacob
私は私の答えを広げます。 – mliebelt