所以我使用rails来做这件事。我有一个带有表单和提交按钮的页面,该按钮为我的数据库创建了一个新记录,然后将该页面重定向到一个谢谢页面。这是通过控制器完成的。
然而,我有这个javascript,它在提交按钮被按下时触发,然后更新我的google电子表格。这基本上就是这里的脚本,[http://railsrescue.com/blog/2015-05-28-step-by-step-setup-to-send-form-data-to-google-sheets/][1]
然而,这样做导致了许多问题的发生,我不想在这里详细介绍。所以更好的是,我想问的是,你会建议我如何将这个javascript添加到我的网页上?到目前为止,我刚推了这条线
<%= javascript_include_tag 'googlesheet' %>
在html页面的底部,然后当按钮被按下时它就会触发。
发布于 2017-02-13 23:32:42
对于初学者来说,您应该小心,因为生产环境中的行为可能不是您想要的。如果你的JS都被缩小了(就像它应该的那样),那么你要么在服务这一个文件时遇到麻烦,因为它不会在资产管道中,要么你无论如何都会把它包含在所有地方。
除此之外,你所做的并没有什么根本的错误。您可以考虑将googlesheet.js
放在/vendor
文件夹中,而不是/app
文件夹中,因为您是在网上找到它的。
除了我在下面列出的方法之外,还有一些方法可以做到这一点,但它们不是特别有用或特别好。
“适当的”解决方案
您可以将googlesheets.js
包含在assets管道中,这将使它对您当前拥有的代码可用。
在config/environments/production.rb
中
config.assets.precompile += ['googlesheets.js']
请参阅Rails指南:http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets
快速而肮脏的解决方案
如果您正在寻找一种快速而粗糙的方法来完成此操作,一种方法是将JS放入视图中,然后将其包含在您需要的位置。它看起来像这样:
在/app/views/javascript/_googlesheet.js.erb
中
<script>
// ... the existing code in your "googlesheet.js" file
</script>
然后在您的主视图中(当前调用<%= javascript_include_tag 'googlesheet' %>
的位置):
<%= raw render partial: 'javascripts/googlesheet', handlers: [:erb, :coffee], formats: [:js] %>
https://stackoverflow.com/questions/42203988
复制相似问题