per*_*nce 1 ruby-on-rails ruby-on-rails-3
我基本上有一个动作,因为逻辑需要返回另一个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
Run Code Online (Sandbox Code Playgroud)
应用程序/视图/教室/ create_differently.js.erb
alert('hi')
Run Code Online (Sandbox Code Playgroud)
你需要添加
:layout => false
Run Code Online (Sandbox Code Playgroud)
以避免HTML的渲染布局的js文件.
另外,您可以像这样定义不同的js文件
:template => "classrooms/create_differently.js.erb"
Run Code Online (Sandbox Code Playgroud)
两者一起:
format.js {
render :template => "classrooms/create_differently.js.erb",
:layout => false
}
Run Code Online (Sandbox Code Playgroud)
对于基于浏览器的测试,请注意调用js不是html!