将.js控制器请求呈现为html

ssc*_*rus 4 ajax controller ruby-on-rails ruby-on-rails-3

我有一个before_filter在我的Rails应用程序中,login_url如果用户在提交请求时以html或js格式注销,则会向用户发送.

我希望我format.js能够生成相同的结果format.html,在下面的例子中,使用'notice'布局渲染视图.我怎样才能做到这一点?

respond_to do |format|
  format.js
  format.html{ render :layout => "notice" }
end
Run Code Online (Sandbox Code Playgroud)

dem*_*tal 7

你可以强制使用这样的可用格式:

respond_to do |format|
  format.js   { render :layout => "notice", :formats => [:html] }
  format.html { render :layout => "notice" }
end
Run Code Online (Sandbox Code Playgroud)

编辑:

您需要的是文档的某些部分被响应替换.这是通过使用执行该作业的javascript响应来完成的:

在你的控制器中:

respond_to do |format|
  format.js
  format.html { render :layout => "notice" }
end
Run Code Online (Sandbox Code Playgroud)

在您的login.js视图中:

$('#whatever').html('<%= escape_javascript( render :login, formats: [ :html ]) %>')
Run Code Online (Sandbox Code Playgroud)

......或类似的东西