【发布时间】:2011-07-04 02:24:52
【问题描述】:
所以我有一个考试控制器。现在它的文件上有一个 jqgrid (index.html.erb)。单击网格行,我已经设置了用于处理事件的 javascript。 看起来像
<script type= "text/javascript">
function handleSelection(id) {
<%=
remote_function :url => render_exam_exams_path,:with => "'id='+id"
%>
}
</script>
现在我刚刚测试的方法如下
def render_exam
@exams = Exam.find(params[:id])
#either
#redirect_to home_index_path
#or open this in new browser tab
#render :action => "render_exam"
end
我也有一个叫做 render_exam 的视图。现在我检查了服务器日志,一切正常,即使生成了 render_exam,我可以在 chrome 开发人员插件中看到。现在的问题是我想要
- 控制器操作 render_exam 打开一个新选项卡并渲染 render_exam 视图,因为它似乎是远程发生的(生成 render_exam 视图和所有),而无需更改 jqgrid 页面。但是我找不到一种方法来打开一个新的浏览器选项卡来从 render_exam 操作本身呈现 render_exam 操作视图,而不是在幕后发生。 或
- 将 jqGrid(或索引视图)页面重定向到 render_exam 视图。现在这里的问题是 redirect_to 操作在视图中不起作用,因为它应该是控制器方法。所以我不能说。
<script type= "text/javascript">
function handleSelection(id) {
<%= redirect_to :action => render_exam_exams_path, :with => "'id='+id" %>
}
</script>
否则问题就解决了。 任何帮助表示赞赏 谢谢
【问题讨论】:
-
我也需要这样做。您是否找到了从 Rails 控制器打开新选项卡的方法?