Я получаю DoubleRenderError и не могу понять, почему! По сути, у меня есть действие, которое вызывает другое действие, которое проверяет введенный пользователем запрос на наличие ошибок, и если возникает ошибка, она останавливается и отображает ошибку. Но когда я набираю запрос с ошибкой, то когда я получаю двойной рендер! Есть предложения?
Вот действие проверки ошибок:
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 exam
ple 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 examp
le GP07-8)
redirect_to(:action => "index") and return
end
yield
И на всякий случай вам нужно действие, вызывающее это действие ..
def show
if_user_formulated_request_properly do
@statuses = IXLStatus.find(:all)
@input_messages = InputMessage.search_by(params[:query].stri
p) unless params[:query].blank?
@query = params[:query]
end
respond_to do |format|
format.html #default rendering
end
end
end
UPDATE
Также забыл упомянуть, что изначально это было приложение rails 2 и работало, эта ошибка началась, когда я обновился до rails 3 (я верю), так что, возможно, rails 3 делает что-то другое с and return
?