首页 > 解决方案 > 如何在 Rails 6 中使用 js.erb 视图

问题描述

是否有可能js.erb在 Rails 6 应用程序中使用视图?我明白了

MyController#my_action is missing a template for this request format and variant.

request.formats: ["text/html"]
request.variant: []

js.erb迁移到 Rails 6 后使用视图的操作出错。

在我的操作中,我只是为实例变量赋值:

  def next_question
    @lesson = lesson
  end

在我有的路线中

  put ':package_id/lessons/next_question', to: 'lessons#next_question', as: 'next_question'

并且有提交此请求的表格

 = form_tag next_question_path(@package), method: :put, remote: true 

如果我创建(用于测试)html.slim文件,一切正常。如果我添加format.js到控制器,我会得到ActionController::UnknownFormat

标签: ruby-on-railsruby-on-rails-6

解决方案


创建一个视图文件next_question.js.erb,然后执行此操作

def next_question
  @lesson = lesson

  respond_to do |format|
    format.js
  end
end

ujs另外,在文件中启用application.js,添加这一行

require("@rails/ujs").start()

试试看!


推荐阅读