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

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

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

 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进行响应来完成的:

在你的控制器中:

 respond_to do |format| format.js format.html { render :layout => "notice" } end 

在您的login.js视图中:

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

…或类似的东西