2

私のコントローラーファイルは次のようになります。

class QuotesController < ApplicationController

  def show
    @quote = Quote.find(params[:id])
    @popup = params[:popup]

    respond_to do |format|
      if @popup.present?
        format.html { render layout: false }
      else
        format.html
      end
      format.json { render json: @quote }
    end
  end

  def create    
    @quote = Quote.new(params[:quote])
    respond_to do |format|
      if @quote.save
        format.html { redirect_to @quote, notice: "Quote was successfully created.", popup: "1" }
        format.json { render json: @quote, status: :created, location: @quote }
      else
        format.html { render action: "errors", layout: false }
        format.json { render json: @quote.errors, status: :unprocessable_entity }
      end
    end
  end

end

http://localhost:3000/quotes/1?popup=1にアクセスすると、ビューは application_layout なしで正しく表示されます

ただし、私が CREATE アクションから来ている場合、?popup=1 が URL に追加されていないようです。したがって、application_layout が表示されるべきでないときに表示されます

popup: "1" を redirect_to 行に追加すると、GET 経由でパラメーターを渡すことになっていると思いました

誰が私が欠けているものを見ることができますか?

ありがとう

4

2 に答える 2

0

編集:私のマシンでこれを試しましたが、うまくいきました:

{ redirect_to quote_path(@quote, :popup => "1"), notice: "Quote was successfully created." }

于 2012-04-08T01:36:39.940 に答える
0

@quote_url(:popup=>1)はそれがうまくいくと思います。

于 2012-04-08T04:37:44.360 に答える