![](/img/trans.png)
[英]ActionController::UnknownFormat When using respond_to do |format| in rails 5 app
[英]Rails, “respond_to do |format|” returns ActionController::UnknownFormat
我正在尝试直接从控制器运行一些JavaScript。
我已经在views / articles / create.js.erb中创建了我的JS文件
在我的articles_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
当我运行我的应用程序时, response_do做| format | 给我ActionController :: UnknownFormat
我尝试使用以下行更新mime_types.rb并按照其他地方的建议重新启动服务器,但没有结果:
Mime::Type.register "application/javascript", :js
奇怪的是,在我的language_controller中 ,以下内容与我的js文件在views / languages / list.js.erb中的工作完美。
def list
respond_to do |format|
format.js
end
end
关于这里可能存在什么问题的任何想法或建议?
任何帮助表示赞赏。
您的create动作不应该是这样吗?
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
或Content-Type
标头。 并不是说mime类型没有向rails注册,因为它注册了javascript最常见的mime类型。
tail -f logs/development.log
data-remote="true"
属性的表单。 <%= form_for(@thing, remote: true) %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.