我有一个控制器,它对format.js做出响应,但是,大多数请求假设旧的format.html仍然存在,并抛出404异常。如何捕获控制器上的所有mime请求并将它们重定向到format.js?
这是当前的控制器操作
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 structure:
def search
unless @search.nil?
render :partial => '/search/search_form', :status => 200
else
render :partial => '/search/not_exist', :status => 422
end
end
(注意:更改为422 unprocessable entity,表示提交时存在语义问题。500通常用于服务器错误,如崩溃、堆栈转储等)