2012-07-31 25 views
0

下面顯示的控制器創建方法重定向,以顯示成功創建客戶時的方法。我希望這個重定向發生在從瀏覽器完成這個帖子時,但是當我從另一個程序發佈帖子時不應該發生重定向。我怎麼做?Rails 3如何在編程完成POST時防止重定向

def create 
    @customer = Customer.new(params[:customer]) 

    respond_to do |format| 
     if @customer.save 
      format.html { redirect_to @customer, notice: 'Customer was successfully created.' } 
      format.json { render json: @customer, status: :created, location: @customer } 
     else 
      format.html { render action: "new" } 
      format.json { render json: @customer.errors, status: :unprocessable_entity } 
     end 
    end 
end 

回答

0

從程序發送自定義HTTP標頭,以確定它,然後檢查頭存在,如果它是不重定向,或發送不同的響應。

+0

或者一個GET參數。 – mpartel 2012-07-31 23:33:57

+0

我想避免發送自定義HTTP頭或GET參數,因爲帖子可能是由其他開發者編寫的程序完成的。有另一種方法嗎? – Mark 2012-07-31 23:43:45

+0

那麼另一個選擇是檢查用戶代理,如果它是瀏覽器使用代理,然後做重定向,否則不要。 – ryudice 2012-07-31 23:57:32