Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 重定向到RubyonRails中的另一个页面_Ruby On Rails - Fatal编程技术网

Ruby on rails 重定向到RubyonRails中的另一个页面

Ruby on rails 重定向到RubyonRails中的另一个页面,ruby-on-rails,Ruby On Rails,我想重定向到create方法末尾的另一个页面admin\u antenna\u reader\u rfids\u path。我做到了: def create @antenna_reader_rfid = AntennaReaderRfid.new(antenna_reader_rfid_params) if @antenna_reader_rfid.save render json: {status: true} redirect_to adm

我想重定向到
create
方法末尾的另一个页面
admin\u antenna\u reader\u rfids\u path
。我做到了:

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

在此操作中多次调用渲染和/或重定向。请注意,您只能调用render或redirect,每个操作最多只能调用一次。还请注意,重定向和渲染都不会终止操作的执行,因此,如果要在重定向后退出操作,则需要执行类似“重定向到(…)并返回”的操作


如何解决此问题?

您必须删除行
呈现json:{status:true}
,因为当前您正试图让控制器呈现json并同时重定向到HTML页面。您必须选择一个。

您必须删除行
render json:{status:true}
,因为当前您正试图使控制器呈现json并同时重定向到HTML页面。您必须选择一个。

您不能在一个方法中多次渲染或返回

在一个方法中不能多次渲染或返回

要处理多个请求格式,可以使用


respond\u to
块中,您可以根据需要呈现所有请求格式,然后根据请求头,控制器将选择相应的逻辑来响应您。

要处理多个请求格式,您可以使用


respond\u to
块中,您可以根据需要呈现所有请求格式,然后根据请求头,控制器将选择相应的逻辑来响应您。

这太糟糕了,我有没有办法完成这两个表单?是否可以通过标准HTML submit和其他请求调用控制器,例如AJAX?那太糟糕了,我有没有办法完成这两个表单?可以通过标准HTML提交和其他一些请求(例如AJAX)调用控制器吗?
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