我有一个响应于 format.js 的 Controller ,但是,大多数请求假设旧的 format.html 仍然存在并抛出 404 异常。如何捕获 Controller 上的所有 MIME 请求并将它们仅重定向到 format.js?
这是当前的 Controller Action
def search
respond_to do |format|
unless @search.nil?
format.js { render :partial => '/search/search_form', :status => 200 }
else
format.js { render :partial => '/search/not_exist', :status => 500 }
end
end
end
我正在尝试做这样的事情,(我知道这是无效的,只是为了演示)。
def search
respond_to(:html) do |format|
unless @search.nil?
format.js { render :partial => '/search/search_form', :status => 200 }
else
format.js { render :partial => '/search/not_exist', :status => 500 }
end
end
end
最佳答案
如果所有请求都应该只有js,就把respond_to整个结构拿出来:
def search
unless @search.nil?
render :partial => '/search/search_form', :status => 200
else
render :partial => '/search/not_exist', :status => 422
end
end
(注意:更改为 422 不可处理的实体以指示提交存在语义问题。500 通常用于服务器错误,例如崩溃、堆栈转储等)
关于ruby - respond_to only format.js 用于所有 mime 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7056293/