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的控制器,可以响应API json上传或使用UI手动上传。
答案 0 :(得分: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
我认为它会起作用。
答案 1 :(得分:0)
救援区块不应该受到指责。如果使用如下选项指定routes.rb
,则会发生这种情况:
resources :widgets, defaults: {format: :the_spanish_inquisition}