是否可以从您自己的 Google Apps 脚本自定义函数中调用任何Google 表格公式?如果是这样,怎么办?
显然,像在工作表中那样仅使用公式名称是行不通的。像这样,这就是我希望能起作用的:
function myCustomFunction() {
return TDIST(1,30,1); // calling =myCustomFunction() does not work due to TDIST giving a ReferenceError, even though =TDIST(1,30,1) works inside the spreadsheet
}
Run Code Online (Sandbox Code Playgroud)
但由于 Google 的内置公式可能依赖于一些 JS 实现的函数,如果没有 API 以便我们可以轻松地重用这些函数,那就奇怪了。我查看了Google Sheets API 参考,但它似乎是为从外部服务调用自定义函数而设计的。看来你可以通过这样的POST请求来调用Google自己的公式。但这似乎非常麻烦,因为您应该能够直接从与特定 Google Sheet 环境相关的自定义脚本中引用它们。如果没有,那么从自定义函数中使用这些内置公式函数的最简单的方法是什么?
google-sheets google-apps-script custom-function google-sheets-formula
这显然不起作用:
redirect_to post_path(@post, :params => params)
Run Code Online (Sandbox Code Playgroud)
由于Rails路由助手不允许你直接设置params哈希(从我读过的).
这可能会带来一些问题:
redirect_to post_path(@post, params)
Run Code Online (Sandbox Code Playgroud)
因为您将转发:controller和:action参数,这将带您进入相同的控制器和您来自的操作.这通常不是你想要的.
这是有效的,但是不够,因为它很麻烦,因为需要大量的代码来将所有参数(除了:action和:controller)设置为现有的params:
redirect_to post_path(@post, {:someparameter => params[:someparameter]})
Run Code Online (Sandbox Code Playgroud)
那么,最简单,最简单的方法是什么?
问题:
display: inline-block;具有不同边距的元素将具有与元素不同的边距,display: block;即使边距设置为例如margin-top: 30px;两者!
margin-top将应用于带有内联块的元素,但与带有块的元素不完全相同.会有一些不同的像素.为什么?
当终端输出文本时,如何使终端(或Visor / TotalTerminal)平滑滚动。这样,在显示git diffs时,我不会完全失去位置感。或者,当使用CTRL- D和CTRL- 在vim模式下导航长差异时U。我不希望终端“跳”到一个新的地方,而是顺畅地流向它。
(我正在使用osx雪豹)
因此,Rails通常会处理通过HTTP Post请求(表单)发送的传入数组的解析,如下所示:
"通常Rails会忽略重复的参数名称.如果参数名称包含一组空的方括号[],那么它们将被累积在一个数组中." - 导轨指南
但是当使用Net :: HTTP.Post向第三方服务(API)发送Post请求时,似乎没有遵循HTTP Post请求中处理数组的这种约定.
这段代码:
data = {:categories => [one, two, three]}
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data(data)
response = http.request(request)
Run Code Online (Sandbox Code Playgroud)
然后set_form_data会像这样序列化数组:
categories=one&categories=two&categories=three
Run Code Online (Sandbox Code Playgroud)
而不是这样(我认为是传统的Rails方式):
categories[]=one&categories[]=two&categories[]=three
Run Code Online (Sandbox Code Playgroud)
为什么?
我可以看到它与最近实现的set_form_data使用的URI.encode_www_form方法有关.但是偏离传统Rails方式的目的是什么?
而且,更重要的是,如何轻松地修改它以后一种方式发送它(不会重载一堆固有的Ruby/Rails方法)?
我有一些测试在特定日期失败,因为有人写了它们使用Date.today.我想在之前的选择日期重现失败.
有没有办法用一个覆盖系统时钟的ENV变量运行rake测试?因此调用Date.today,Time.now以及1.day.ago和1.day.from_now将使用我设定的日期?
比如,例如:
> DATE_TODAY='2017-01-04' rake test
Run Code Online (Sandbox Code Playgroud) 我似乎遇到了一个git在合并时没有注意到内联更改的情况.
我的主分支有一个这行文件:
process &block if block
Run Code Online (Sandbox Code Playgroud)
我从git repo中获取了一个,并尝试合并来自同一个文件的更改,该文件有一行:
process 1, &block if block
Run Code Online (Sandbox Code Playgroud)
但是git没有对可能的合并冲突发出警告,也没有突出显示改变的行[1].简单地忽略了更改,而不是使用行[2]更新文件.
为什么git没有注意到这个内联更改?并更新该行(因为该行来自后来的提交)?
编辑:
[1] - 当我做冲突解决时,git没有表明它已经改变了(你知道,它没有在它周围的源代码中加入"<<<").并且随后的合并提交不会以任何方式显示更改的行(无论是使用颜色运行gif diff还是查看github上的代码).
[2] - 该行来自一个repo,它拥有我正在处理的同一个gem的更新版本(因此应该有一些常见的提交祖先用于进行合并.此外,该行在稍后的提交中更新同样的回购,所以git应该很明显,这实际上是一个更新).
编辑:
如果它扮演角色,这是合并前的提交树:
原始宝石(共同祖先):
--A
Run Code Online (Sandbox Code Playgroud)
我的主分支(实际上是原始宝石的一个分支):
--A--
\
--B
Run Code Online (Sandbox Code Playgroud)
(B中的线没有变化,但来自A)
我合并到主服务器的repo(gem的更新版本):
--A---C---D
Run Code Online (Sandbox Code Playgroud)
(该行在D中更新)
有没有办法找出是否在执行某些代码期间引发和获救了任何异常?
最好是用ActiveSupport::TestCaseRSpec 编写而不是用RSpec 编写的测试
是否有任何全局ruby异常堆栈或其他东西,我可以检查?
我只是想知道是否是String方法force_encoding,因为它改变了给定字符串的编码,而不是它的副本,而应该被命名force_encoding!
更新以澄清我所追求的答案:我是否缺少一些常规或一般的ruby特性,这可能解释了看似不一致的命名?