我有一个 before_filter
在我将用户发送到 login_url
的 Rails 应用程序中如果他们在提交请求时注销(以 html 或 js 格式)。
我要我的 format.js
产生与 format.html
相同的结果, 在以下情况下,使用“通知”布局呈现 View 。我怎样才能做到这一点?
respond_to do |format|
format.js
format.html{ render :layout => "notice" }
end
最佳答案
您可以强制使用这样的可用格式:
respond_to do |format|
format.js { render :layout => "notice", :formats => [:html] }
format.html { render :layout => "notice" }
end
编辑:
您需要的是被响应替换的文档的某些部分。这是通过使用执行此工作的 javascript 进行响应来完成的:
在您的 Controller 中:
respond_to do |format|
format.js
format.html { render :layout => "notice" }
end
在您的 login.js View 中:
$('#whatever').html('<%= escape_javascript( render :login, formats: [ :html ]) %>')
...或类似的东西
关于ruby-on-rails - 将 .js Controller 请求渲染为 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10607369/