小编Mag*_*gne的帖子

如何在Sublime Text中修复/转换空格缩进?

示例:如果我有一个包含2个空格缩进的文档,并且我希望它有4个空格缩进,如何使用Sublime Text编辑器自动转换它?

indentation auto-indent sublimetext2

225
推荐指数
6
解决办法
14万
查看次数

在同一个字段上使用attr_accessor和attr_accessible

使用以下代码在后台会发生什么?

class User < ActiveRecord::Base

 attr_accessor :name
 attr_accessible :name

end
Run Code Online (Sandbox Code Playgroud)

提示:实例化类时,是否会持久化到数据库?为什么或者为什么不?

field ruby-on-rails attr-accessor attr-accessible

21
推荐指数
3
解决办法
2万
查看次数

如何使用Rails将长文本存储到MySql DB?

我试图将一个长文本(在我的情况下是一个原始的RSS源,但也可能是一篇很长的博客文章或类似文件)存储到MySql数据库.

我有一个迁移:

change_column :contents, :description, :longtext
Run Code Online (Sandbox Code Playgroud)

但这给出了一个schema.rb:

t.text     "description",       :limit => 2147483647
Run Code Online (Sandbox Code Playgroud)

当限制实际上应该设置为4294967295.

为什么Rails施加的上限是应该可能的一半?

mysql text ruby-on-rails

15
推荐指数
1
解决办法
8875
查看次数

是否可以以递归方式保存Rails中的记录?

例如,user有一个list,list有很多items,我在控制器中有以下代码:

@user = User.new()
@list = List.new()
(1..10).each { |i| @list.items << (Item.new(:order => i)) }
@user.list = @list
Run Code Online (Sandbox Code Playgroud)

现在,如果我打电话@user.save,@list10 item秒将不会保存到数据库.我该如何重写这段代码?

activerecord ruby-on-rails

9
推荐指数
2
解决办法
1148
查看次数

Google Sheets 自定义函数支持多少 JsDoc?

Google 暗示支持 JsDoc:

如果自定义函数的脚本包含 JsDoc @customfunction 标记,则自定义函数将出现在此列表中,如下面的 DOUBLE() 示例所示。

https://developers.google.com/apps-script/guides/sheets/functions

但似乎并没有完全支持 JsDoc,而且我找不到显示支持和不支持的文档。

我特别寻找一种方法来记录自定义函数的参数是可选的。像这样,对于 value2:

在此输入图像描述

图片提供:https://yagisanatode.com/2018/08/24/google-apps-script-how-to-make-a-custom-function-to-use-in-google-sheets/

使用 JsDoc,您应该能够根据此源执行以下操作: https ://jsdoc.app/tags-param.html#optical-parameters-and-default-values

/**
 * @param {number} [value2] - Additional numbers or ranges to add to value1.
 */
Run Code Online (Sandbox Code Playgroud)

并且,使用默认值:

/**
 * @param {number} [value2=100] - Additional numbers or ranges to add to value1.
 */
Run Code Online (Sandbox Code Playgroud)

但我在谷歌表格中对此进行了测试,但这些都不起作用。甚至没有建议的 Google Closure Compiler 语法(如果可以的话):

/**
 * @param {number=} value2 - Additional numbers or ranges to add to value1.
 */
Run Code Online (Sandbox Code Playgroud)

目前我已经采取了不太优雅的方法:

/**
 * @param {number} value2 - …
Run Code Online (Sandbox Code Playgroud)

google-sheets jsdoc google-apps-script custom-function

7
推荐指数
1
解决办法
2589
查看次数

如何使用Angular挂钩点击链接,并在点击完成之前添加href?

上下文:
当用户单击链接时,我必须从服务器获取URL.它不是事先可用的.点击链接应该正常,但使用该提取的URL.

程序如下:

  • 链接href="#"在单击之前包含
  • 单击该链接
  • 我用ng-mousedownor 挂钩,然后ng-click使用$http请求从服务器获取URL .
  • 使用URL更新链接的href.
  • 原始点击应该完成(使用新的网址,而不是#占位符).

问题出现在最后一步.由于$http请求是异步的,我怀疑存在时间问题.我的怀疑是:如果服务器请求足够快,它将通过,并在原始点击进行之前更改URL.如果没有,则原始点击进入并尝试转到#占位符URL.所以单击链接时不会发生任何事情.

我想让原始点击等待$http请求的结果与URL一起返回.原始点击很重要的原因是它可能是鼠标左键单击或鼠标中键(cmd +单击),我不知道哪一个,所以很难从javascript中自己调用它.

那么,关于如何使用获取的URL进行原始点击的任何聪明的想法?

javascript ajax angularjs

6
推荐指数
1
解决办法
6959
查看次数

“掏空”或“掏空”是什么意思?

在这些示例中,例如:

从bundle exec调用的命令中将shell打包

要么

封装到不属于您当前捆绑包的Ruby命令中,

http://bundler.io/man/bundle-exec.1.html

要么

我要在rake任务中使用heroku命令

https://github.com/sstephenson/rbenv/issues/400

ruby unix bundler

6
推荐指数
1
解决办法
1644
查看次数

为什么在Rails中使用Time.current而不是Time.zone.now,总是设置Time.zone?

文档Time.current说:

返回Time.zone.now何时Time.zoneconfig.time_zone设置,否则只返回Time.now.

# File activesupport/lib/active_support/core_ext/time/calculations.rb, line 36
def current
  ::Time.zone ? ::Time.zone.now : ::Time.now
end
Run Code Online (Sandbox Code Playgroud)

但是什么Time.zone时候没有在Rails中设置?

# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
# config.time_zone = 'Berlin'
Run Code Online (Sandbox Code Playgroud)

我已经注释掉了config.time_zone,我仍然将Time.zone等于'UTC',因为它显然会默认设置为注释提及.那么,使用Time.current结束有Time.zone.now什么意义呢?

PS:我在Rails 4.1.16上观察到这一点

time timezone ruby-on-rails

6
推荐指数
1
解决办法
3378
查看次数

如何并行执行自定义函数公式,同时保持 Google 表格可共享且无需许可?

我有一个带有自定义函数公式的 Google 表格:从电子表格中获取一个矩阵和两个向量,进行一些冗长的矩阵向量计算(>30 秒,因此超出配额),然后将结果输出为一堆行。它是单线程的,因为这就是 Google Apps 脚本 (GAS) 本身的本质,但我想使用多线程解决方法并行化计算,因此它可以大大加快计算速度。

\n

要求(1-3):

\n
    \n
  1. 用户体验:它应该作为自定义函数公式自动且反应性地运行计算,这意味着用户不必通过单击运行按钮或类似按钮来手动启动它。就像我目前的单线程版本一样。

    \n
  2. \n
  3. 可并行化:理想情况下,它应该生成约 30 个线程/进程,这样就不会像现在那样花费 >30 秒(这会导致由于 Google 的配额限制而超时),而应该花费约 1 秒。(我知道 GAS 是单线程的,但有一些解决方法,如下所述)。

    \n
  4. \n
  5. 可共享性:理想情况下,我应该能够与其他人共享工作表,以便他们可以“制作副本”,并且脚本仍将为他们运行计算:

    \n
  6. \n
\n
    \n
  • 3.1无许可:我不必手动向用户授予个人权限(无许可)。例如,每当有人“制作副本”和“以访问网络应用程序的用户身份执行应用程序”时。我的初步测试表明这是可能的。
  • \n
  • 3.2非侵入性:电子表格的用户无需提供侵入性授权,例如“授予此电子表格/脚本/应用程序访问您整个 Google Drive 或 Gmail 帐户的权限?”。只要仍然保留要求 3.1,用户必须向脚本/Web 应用程序提供非侵入式授权是可以接受的。
  • \n
  • 3.3 UX:不强迫用户查看电子表格中的 HTML 侧边栏。
  • \n
\n

我已经阅读了@TheMaster 的这篇优秀的相关答案,其中概述了解决 Google Apps 脚本中并行化问题的一些潜在方法。解决方法 #3google.script.run和解决方法 #4 UrlFetchApp.fetchAll(均使用 Google Web …

multithreading mapreduce google-sheets google-apps-script custom-function

6
推荐指数
1
解决办法
889
查看次数

如何在分组下拉列表中包含"请选择..."(默认/提示)?

我用于下拉列表的代码是这样的:

<%= f.select :post_type_id, option_groups_from_collection_for_select(@categories, :post_types, :name, :id, :name) %>
Run Code Online (Sandbox Code Playgroud)

它巧妙地将选项划分为optgroups.

但是如何修改代码以包含"请选择..."的提示(或默认值)?

分组下拉列表似乎很难做到.(rails docs似乎建议使用哈希,但我尝试了几种替代方案但没有成功.)

ruby-on-rails optgroup drop-down-menu

5
推荐指数
1
解决办法
1585
查看次数