В моем приложении rails внезапно появляется ошибка двойного рендеринга (Render and/or redirect were called multiple times in this action. Please note that you may only call render OR redirect, and at mos ....etc...
), и я не могу понять, где находится двойной рендер. Это происходит, когда пользователь вводит запрос в неправильном формате. Вот код, который проверяет формат и отображает ошибки:
def if_user_formulated_request_properly
unless request.post?
flash[:error] = "This page can only be accessed through the search page. (POST request only)"
redirect_to(:action => "index") and return
end
if params[:query].blank?
flash[:error] = "Search criteria can not be blank"
redirect_to(:action => "index") and return
end
if !(params[:query] =~ /-/)
flash[:error] = %( Format of search criteria is wrong.<br /> Should be [IXLSpecClass value][year]-[Message ID] for example GP07-8)
redirect_to(:action => "index") and return
end
if !(QueryParser.expression.match(params[:query]))
flash[:error] = %( Format of search criteria is wrong.<br /> Should be [IXLSpecClass value][year]-[Message ID] for example GP07-8)
redirect_to(:action => "index") and return
end
Есть предложения?
ОБНОВЛЕНИЕ
Код действия контроллера по запросу:
def show
if_user_formulated_request_properly do
@input_messages = InputMessage.search_by(params[:query].strip) unless params[:query].blank?
end
respond_to do |format|
format.html #default rendering
end
end