ruby-on-rails - 将 .js Controller 请求渲染为 html

标签 ruby-on-rails ajax ruby-on-rails-3 controller

我有一个 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/

相关文章:

javascript - 为什么我的 ajax 调用返回 null

ruby-on-rails - rails : complicated design choice: polymorphism? STI?

ruby-on-rails-3 - Rails_admin : control on admin users signup

ruby-on-rails - Ruby 2.4 升级后 - 尝试加载 gem 'uglifier' 时出错(Bundler::GemRequireError)

javascript - new FormData(form) 不提交表单

ruby-on-rails - OS X 上的 RSpec 加载时间令人难以置信的长

jquery - Ajax 弹出窗口在成功消息后未关闭

ruby - group_by in rails by 2个或更多属性

ruby-on-rails - 在多台服务器上部署 Ruby on Rails 应用程序

ruby-on-rails - 在 Rails 中,如何使用字符串数组实现 HTML 选择菜单?