2

私はRailsプロジェクトに取り組んでいます。私は、サイトの要求を処理する 1 つのコントローラー (Home_Controller) を作成するように勧められました。Post と Person の 2 つの異なるモデルがあります (どちらも完全に独立しています)。ホームコントローラーのようなメソッドを定義したいのですが、 やnewのようなコントローラーメソッドを書くのは慣習に反しているようです。 new_personnew_post

ご協力いただきありがとうございます!

4

2 に答える 2

3

モデル のみを制御する必要があるため、 MVCパターンに反します。Home_ControllerHome

懸念事項を区別するために aPeopleControllerと aが必要です。PostsController

そうは言っても、あなたが求めているシステムを持っていることはまったく前例のないことではありません..必要routes.rbなものに一致するように独自のカスタムルートを作成する必要があります. たとえば、HomeController は次のようになります。

class HomeController < ApplicationController
  ...
  def new_person
    @person = Person.create
  end
  def new_post
    @post   = Post.create
  end
end

ルートは次のようになります。

get 'people/new' => 'home#new_person'
get 'post/new' => 'home#new_post'

主な問題は、この規則から逸脱すると、コードが非常に読みづらく、保守が困難になることです。特に、1 つのファイルに複数の手がある場合。

于 2013-07-16T19:58:53.430 に答える
1

先に進んで、おそらく言うつもりです。文脈の外で正確に知ることは困難ですが、そうです、これは慣習に反します。

慣例の問題とは別に、保守性と可読性があり、1 つの大規模なコントローラー ファイルを開発するのは地獄です。

于 2013-07-16T19:57:31.567 に答える