0

Railsでリダイレクトはどのように機能しますか?私はそれが非常に直感的でなくてイライラしていると思います。

下にビューファイルを追加しました/views/mymodels/custom.html.erb

私は空のコントローラーメソッドを持っています:

def custom

end

私はroutes.rbで以下を持っています:

  resources :mymodel do
    member do
      get 'custom'
    end
  end

私のコントローラーでは、モデルが次の方法で作成されたときにカスタムビューをレンダリングしようとしています。

respond_to do |format|
  if @presentation.save
    redirect_to action: "custom"
    #format.html { redirect_to @mymodel, notice: 'Presentation was successfully created.'}
    #format.json { render json: @mymodel, status: :created, location: @mymodel }

これにより、リダイレクトによって空白のページがレンダリングされます。ただし、ブラウジング/mymodels/[id]/customは正常に機能します。私は何が間違っているのですか?なぜどちらも機能しないrender :action => "custom"のですか?

編集:

これは機能します:format.html { render action: "upload" }しかし、なぜですか?

4

1 に答える 1

2

なぜformat.html {...}条項にコメントしたのですか?これを使って:

それ以外の:

  if @presentation.save
    redirect_to action: "custom"
    #format.html { redirect_to @mymodel, notice: 'Presentation was successfully created.'}

これを書く:

  if @presentation.save
    format.html { redirect_to action: "custom" }
于 2012-04-22T10:53:53.550 に答える