使用远程选项模拟redirect_to

时间:2013-10-31 08:29:15

标签: ruby-on-rails ruby-on-rails-3

我有以下方案: lessons_controller - > show.html.erb ,其中包含* form_tag *,其中 remote:true - > test_controller - > show.js - >的 _test.html.erb

课程/节目页面上提交form_tag时,我会收到 _test.html.erb 的内容。

但我想在某些情况下跳过课程/节目页面。

所以我想转到课程/节目页面,接收 _test.html.erb 的内容而不提交任何内容。使用远程选项 lessons_controller 中的 redirect_to 来模拟form_tag提交。

有可能吗?

2 个答案:

答案 0 :(得分:0)

不确定您的目的,如果您只想直接显示表单,就像在js资产中添加以下内容一样简单

$ ->
  $(form#show_lesson).submit()

如果要在控制器级别控制它。您可以执行以下操作。

# Lessons controller
def show
  @lesson = Lesson.find params[:id]
  template = params[:show_directly].present? ? 'show' : 'show_with_test'
  render template
end

# views/show.html.erb
render partial: 'show_form'

# views/show_with_test.erb
render partial: 'test', locals: {lesson: @lesson}

使用

浏览lessons/1将显示原始表单

浏览lessons/1?show_directly=1将直接显示所有内容。

答案 1 :(得分:0)

我认为您可以在加载课程#show时调用javascript提交,并使用_test.html.erb中的回调数据。

我认为用'脚本'类型制作重定向请求是不可能的好方法。