Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 轨道;回应“你要做的事”格式;返回ActionController::UnknownFormat_Javascript_Ruby On Rails_Ruby - Fatal编程技术网

Javascript 轨道;回应“你要做的事”格式;返回ActionController::UnknownFormat

Javascript 轨道;回应“你要做的事”格式;返回ActionController::UnknownFormat,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我试图直接从我的控制器运行一些javascript 我已经在views/articles/create.JS.erb中创建了我的JS文件 在我的文章中\u controller: def create @article = Article.new(article_params) if @article.save && manage_strings @status = 'success' else

我试图直接从我的控制器运行一些javascript

我已经在views/articles/create.JS.erb中创建了我的JS文件

在我的文章中\u controller

def create
        @article = Article.new(article_params)
        if @article.save && manage_strings
            @status = 'success'
        else
            @status = 'error'
            @errormessages= @article.errors.full_messages
        end
        respond_to do |format|
            format.js
        end

end
当我运行我的应用程序时,respond|u to do | format |会给我ActionController::UnknownFormat

我尝试用以下行更新我的mime_types.rb,并按照其他地方的建议重新启动服务器,但没有结果:

Mime::Type.register "application/javascript", :js
最重要的是,在我的语言\u控制器中,视图/languages/list.js.erb中的js文件可以完美地使用以下内容

def list
    respond_to do |format|
        format.js
    end
end
关于这里可能存在的问题,有什么想法或建议吗


谢谢你的帮助

您的创建操作不应该是这样的吗

def create
  @article = Article.new(article_params)
  respond_to do |format|
    if @article.save && manage_strings
      format.html { redirect_to @article, notice: 'Article was successfully created.' }
      format.json { render :show, status: :created, location: @article }
    else
      format.html { render :new }
      format.json { render json: @article.errors.full_messages, status: :unprocessable_entity }
    end
  end

end

最可能的解释是,请求不是在请求JS。为了让rails将请求视为JS,路径需要以
.JS
结尾,或者具有正确的
Accept
内容类型
标题。并不是说mime类型没有向rails注册,因为它为javascript注册了最常见的mime类型

  • 检查rails日志以确认:
    tail-f logs/development.log
  • 检查浏览器控制台是否存在错误
  • 检查具有
    data remote=“true”
    属性的表单
    
    
    控制器代码似乎正常,问题可能在于请求。您是否可以包括
    处理..
    参数:
    行,这些行来自
    日志/development.log
    ?@dyserone您的if-else条件应该在您的response-to块中。看看我的答案。让我知道它是否有效。对于该创建请求,必须是ajax(xhr)请求,而不是html。伙计们,谢谢你们,这实际上是max建议的。真他妈的简单。我不敢相信我的问题竟然那么简单,谢谢。你的答案似乎更完整,而且是一个很好的练习。很抱歉没有选择你的,但是麦克斯的回答解决了这个问题。另外,我正在尝试加载一个js文件,“format.json”也可以吗?
    <%= form_for(@thing, remote: true) %>