我正试图直接从我的控制器运行一些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
当我运行我的应用时, respond_to do | format | 为我提供了 ActionController :: UnknownFormat
我尝试使用以下行更新 mime_types.rb 并按照其他地方的建议重新启动我的服务器,但没有结果:
Mime::Type.register "application/javascript", :js
奇怪的是,在我的 languages_controller 中,以下内容与 views / languages / list.js.erb 中的js文件完美配合。
def list
respond_to do |format|
format.js
end
end
关于什么可能有问题的任何想法或建议?
任何帮助表示赞赏。
答案 0 :(得分:1)
您的创建操作不应该是这样的吗?
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
答案 1 :(得分:1)
最可能的解释是请求不是请求JS。为了让rails将请求视为JS,路径需要以.js
结尾或具有正确的Accept
或Content-Type
标头。并不是mime类型没有注册rails,因为它注册了javascript最常见的mime类型。
tail -f logs/development.log
data-remote="true"
属性的表单。 <%= form_for(@thing, remote: true) %>