所以我使用rails来做到这一点。 我有一个带有表单的页面和一个提交按钮,它为我的数据库创建一个新记录,然后将页面重定向到一个感谢页面。这是通过控制器完成的。
然而,我有这个javascript,当按下提交按钮时触发,然后更新我的谷歌电子表格。这基本上就是这个脚本, [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页面的底部,然后只是在按下按钮时触发。
答案 0 :(得分:1)
对于初学者,你应该小心,因为生产中的行为可能不是你正在寻找的。如果你的JS全部缩小(应该是这样),那么你要么只是服务这个文件就会遇到麻烦,因为它不会进入资产管道,或者你包括无论如何它到处都是。
除此之外,你所做的事情并没有根本错误。您可以考虑将googlesheet.js
放在/vendor
文件夹而不是/app
,因为您是在线找到的。
除了下面列出的内容之外,有一些方法可以做到这一点,但它们并不是特别有用或不好。
您可以在资产管道中加入googlesheets.js
,这将使您可以使用当前的代码。
在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] %>