Javascript 轨道;回应“你要做的事”格式;返回ActionController::UnknownFormat
我试图直接从我的控制器运行一些javascript 我已经在views/articles/create.JS.erb中创建了我的JS文件 在我的文章中\u controller: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
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类型
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) %>