Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 Rails-可以在RJS文件中使用ruby代码吗?_Ruby On Rails_Ajax_Rjs - Fatal编程技术网

Ruby on rails Rails-可以在RJS文件中使用ruby代码吗?

Ruby on rails Rails-可以在RJS文件中使用ruby代码吗?,ruby-on-rails,ajax,rjs,Ruby On Rails,Ajax,Rjs,可以在RJS文件中使用ruby代码吗 例如,destroy.js.rjs文件 这是从具有 def destroy @viewer = Viewer.find(params[:id]) @viewer_registry = Registry.find(@viewer.registry_id) @viewer.destroy flash[:notice] = "Viewer deleted" @template = params[:template]

可以在RJS文件中使用ruby代码吗

例如,destroy.js.rjs文件

这是从具有

  def destroy
    @viewer = Viewer.find(params[:id])
    @viewer_registry = Registry.find(@viewer.registry_id)
    @viewer.destroy
    flash[:notice] = "Viewer deleted"
    @template = params[:template]
    params[:template] = nil
    respond_to do |format|
      format.html { redirect_to registry_path(@viewer_registry) }
      format.js
    end
  end
因此,在AJAX调用中,RJS文件用于响应,它根据调用销毁操作的模板给出不同的响应

此时,AJAX调用被发出,记录被销毁,然后什么都不会发生,不管哪个模板调用销毁操作。 所以我想知道它是否仅仅因为我不能在RJS文件中使用ruby代码而不起作用。有什么想法吗?还是我完全做错了


谢谢

对,我重新定义了destroy函数,使其看起来像这样:

  def destroy
    #is this bad because its not linked to current_user?
    #how would you even set it to be relational to current_user? 
    @viewer = Viewer.find(params[:id])
    @viewer_registry = Registry.find(@viewer.registry_id)
    @viewer.destroy
    flash[:notice] = "Viewer deleted"
    respond_to do |format|
      format.html { redirect_to registry_path(@viewer_registry) }
      format.js {
        if params[:template] == "viewer"
          render :action => "viewer_destroy.js.rjs"
        else
          render :action => "destroy.js.rjs"
        end
      }
    end
  end
所以我有2个RJS文件,根据传入的模板名使用不同的文件。 耶

  def destroy
    #is this bad because its not linked to current_user?
    #how would you even set it to be relational to current_user? 
    @viewer = Viewer.find(params[:id])
    @viewer_registry = Registry.find(@viewer.registry_id)
    @viewer.destroy
    flash[:notice] = "Viewer deleted"
    respond_to do |format|
      format.html { redirect_to registry_path(@viewer_registry) }
      format.js {
        if params[:template] == "viewer"
          render :action => "viewer_destroy.js.rjs"
        else
          render :action => "destroy.js.rjs"
        end
      }
    end
  end