首页 > 解决方案 > 缺少带有 rails 6 和 respond_to 的模板 Jquery

问题描述

我正在尝试呈现一个 ajax 请求以收藏广告,但缺少模板错误显示如下,而我将 '''remote: true''' 添加到 '''link_to''' 并为导轨 6 用纱线。

这是错误消息:

FavoritesController#update 缺少此请求格式和变体的模板。request.formats: ["text/html"] request.variant: []

这是我的代码:

javascript/packs/application.js

require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("@rails/ujs").start()
require("jquery") 

配置/webpack/environment.js

const { environment } = require('@rails/webpacker')
const webpack = require('webpack')
environment.plugins.prepend('Provide',
  new webpack.ProvidePlugin({
    $: 'jquery/src/jquery',
    jQuery: 'jquery/src/jquery'
  })
)

module.exports = environment

控制器/favorites_controller.rb

  class FavoritesController < ApplicationController

  def update
    favorite = Favorite.where(annonce: Annonce.find(params[:annonce]), user: current_user)
    if favorite == []
        Favorite.create(annonce: Annonce.find(params[:annonce]), user: current_user)
        @favorite_exists = true
    else
        favorite.destroy_all
        @favorite_exists = false
    end

    respond_to do |format|
      format.html {}
      format.js {}
    end
  end
end

控制器/application_controller.rb

class ApplicationController < ActionController::Base
    def favorite_text
        return @favorite_exists ? "Retirer des favoris" : "Favoris"
    end

    helper_method :favorite_text    
end

意见/收藏夹/update.js.erb

$('#favorite_link').text("<%= favorite_text %>");

意见/公告/show.html.erb

<%= link_to favorite_text, favorites_update_path(annonce: @annonce), id: "favorite_link", remote: true %>

标签: javascriptjqueryruby-on-railswebpack

解决方案


推荐阅读