1
def new
  @post = Post.new

  respond_to do |format|
    format.html # new.html.erb
    format.json { render json: @post }
  end
end

def create
  @post = Post.new(params[:post])
  #something else
end

ここで実際に新しい投稿を作成するときは、Page.new(params[:page]) が使用されているメソッド create を呼び出すため、メソッド new はビュー new.html.erb を呼び出すためにのみ使用する必要があります。では、なぜここで new メソッドにインスタンス変数 @post が必要なのでしょうか?

4

2 に答える 2

0

新しいインスタンス変数を作成しなかった場合、モデルが管理するはずのデータを保持するモデルがありません。モデルを取るフォーム ヘルパー。モデルを使用しないと、意図したとおりに MVC フレームワークを完全に使用できません。

以上のことから、Rails がその上に構築されている MVC 構造に従っているだけで、何もする必要はありません。パターンは必要ありません。常に他の解決策があります。このアクションを実行するための受け入れられた方法には、空のモデルではありますが、モデルが含まれているだけです。

最後に、ルートは通常、オブジェクトを作成するフォームを表示するために使用され、関数はモデルの新しいインスタンスを実際に作成するために使用されるため、いつ、またはなぜnewルートで応答したいのかわかりません.JSONnewcreate

于 2013-04-07T20:49:14.387 に答える