将.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 ]) %>')
…或类似的东西
- Rails – 通过选择下拉菜单执行ajax调用
- 一个rails应用程序,使用HTML5地理定位获取用户位置并保存到数据库
- Rails – 更新div与Ajax和:remote => true
- Ruby On Rails 3,form_tag远程响应Ajax请求
- 未捕获的TypeError:undefined不是函数rails3 / backbone / js
- 动态地将params插入到Rails中的link_to
- 使用rails中的simple_form和AJAX解析JSON错误
- Ruby on Rails使用Ajax进行渲染
- Rails:用户使用以下命令销毁不相关的对象后退出:remote => true