我想在admin_antenna_reader_rfids_path
方法的末尾重定向到另一页create
。我做到了:
def create
@antenna_reader_rfid = AntennaReaderRfid.new(antenna_reader_rfid_params)
if @antenna_reader_rfid.save
render json: {status: true}
redirect_to admin_antenna_reader_rfid_path(q@antenna_reader_rfid)
else
render json: {errors: @antenna_reader_rfid.errors.full_messages, status: false}
end
end
我收到一个错误AbstractController :: DoubleRenderError
:
此操作多次调用了渲染和/或重定向。请注意,您只能调用渲染或重定向,每个操作最多只能调用一次。还要注意,重定向和渲染都不会终止操作的执行,因此,如果要在重定向后退出操作,则需要执行“ redirect_to(...)并返回”之类的操作。
我该如何解决?
答案 0 :(得分:2)
您必须删除行render json: {status: true}
,因为当前您正在尝试使控制器呈现json并同时重定向到HTML页面。您必须选择一个。
答案 1 :(得分:1)
要处理多种请求格式,可以使用respond_to
if @antenna_reader_rfid.save
respond_to do |format|
format.json { render json: { status: true } }
format.html { redirect_to where_you_want_path }
end
else
# same way as above
end
在respond_to
块中,您可以根据需要呈现所有请求格式,然后控制器根据请求标头选择相应的逻辑来响应您。
答案 2 :(得分:0)
在一个方法中,您不能渲染或返回多次。