2017-06-07 67 views
0

respond_to不工作內部控制器救援塊:導軌的respond_to在控制器救援塊

def create 
    respond_to do | format | 
    format.json { render json: SomeManager.new(some_params).json } 
    format.html do 
     SomeManager.new(some_params) 
     render :new, notice: 'it worked' 
    end 
    end 
rescue => e 
    respond_to do | format | 
    format.json { render json: {error: 'did not work because reasons'}.to_json, status: :forbidden } 
    format.html { render :new, alert: 'did not work because reasons' } 
    end 
end 

^控制器API可使用UI來API JSON上傳,或人工上傳響應。

+0

啊......在我的特定情況下,這是唯一不是因爲其他地方錯誤的工作,所需要的文件的上傳是在視圖:如果與像這樣的選項指定您的routes.rb會發生這種情況'= form_tag({action::create,format:'html'},multipart:true)do',因爲我特別需要添加格式爲html – xxjjnn

回答

1

爲了更好的可讀性,使用begin .. rescue這樣,而不是:

def create 
    respond_to do | format | 
    begin 
     format.json { render json: SomeManager.new(some_params).json } 
     format.html do 
     SomeManager.new(some_params) 
     render :new, notice: 'it worked' 
     end 
    rescue => e 
     format.json { render json: {error: 'did not work because reasons'}.to_json, status: :forbidden } 
     format.html { render :new, alert: 'did not work because reasons' } 
    end 
    end 
end 

我認爲應當編制。

0

救援區不是責任。

resources :widgets, defaults: {format: :the_spanish_inquisition}