我的Rails应用中有before_filter
,如果用户在提交请求时以html或js格式注销,则会将用户发送到login_url
。
我希望我的format.js
向format.html
生成相同的结果,在下面的情况下,使用'notice'布局渲染视图。我怎么能这样做?
respond_to do |format|
format.js
format.html{ render :layout => "notice" }
end
答案 0 :(得分:7)
你可以强制使用这样的可用格式:
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 ]) %>')
......或类似的东西