2

我基本上有一个动作,由于逻辑需要返回另一个 js 文件的内容。我该怎么做呢?谢谢

应用程序/控制器/classrooms_controller.rb

def create
  if params[:test_logic]
    respond_to do |format|
      format.js { render 'create_differently' } # This doesn't work.
    end
  else
    redirect_to root_path
  end
end

app/views/classrooms/create_differently.js.erb

alert('hi')
4

1 回答 1

6

您需要添加

 :layout => false 

避免为您的 js 文件呈现 html布局。

此外,您可以像这样定义不同的 js 文件

:template => "classrooms/create_differently.js.erb"

两者一起:

 format.js { 
    render :template => "classrooms/create_differently.js.erb", 
           :layout => false  
 }

对于基于浏览器的测试,请注意调用 js 而不是 html!

于 2013-01-06T00:49:53.623 回答