你的目的是什么,为什么要判断。
为了身心健康,请避免用 default_scope
人家选了,自然有人家的打算。Ruby 不是那么耗程序员,几个核心加加班草稿也就出来了。Github 的最初版开始也是一个创始人自己敲出来的。
最关键的内存和 CPU 你都不测那还测什么:)这两个要没限制你随便跑多少都可以。
@shangrenzhidao p1..p2
就是定义一个 range
@shangrenzhidao 我不太懂 Java, 不好做比较。是这样的,当你定义一个 range 时,Ruby 需要知道 range 的起始,需要知道间隔。起始你已经定义了,是 p1 和 p2。那么间隔呢,Ruby 会对起点到终点间的每一个元素呼叫 succ(或者 alias next) 来决定。如果是普通的 range 比如 (1..5),每一个元素都是 Fixnum, 而 Fixnum 的 succ 会返回其本身 +1,那么你就会得到 [1,2,3,4,5]。但这里 p1.succ 被重写了,会得到本身的翻倍,下一个元素也是一样,所以你得到 [4, 8, 16, 32]
从来没有遇见过。楼主给个例子怎么重现错误吧。
succ 就是 next, 在你定义 range 的时候 (p1..p2
) 被呼叫,决定下一个的值。默认值是 +1, 在你这里被覆盖为加自身。
Range module 有类似的例子。 http://ruby-doc.org/core-2.1.1/Range.html
下面的图难就难在每次都要重新造轮子,哈哈
Vim 用 Tabular plugin, 选中 block 内容,命令行:Tabular /:
, s/: /:/g
就可以了。如果需要还可以随后用 q 手动调整一下间距。
很少见暂存的。
从概念上来说,暂存保存的是 hash 数据,不验证。如果从后端执行的话,填充表格一块要稍微费点手脚。
不过你也可以完全从前端存的,储存在浏览器的 localStorage 就行了。没做过,只知道可行。
是的。一般的处理是在 migration 的 change 里面加一个命令,比如 User.update_all(foo: 'bar')。不过对于 name 这些靠用户自己输入的值,还是没有就没有吧。
赞正能量 :plus1:
lib 是你的,直接写在 lib 里面就行了啊。不到穷尽所有其他方法,绝不能写这样的代码。
这些 gem 的主要作用是提供 GUI 管理 ActiveRecord 记录。有一些作用,但相比带来的复杂性和维护成本,我觉得不值得。
如果是给业务管理人员用,你不必也不能开放所有的 model。而且 model 基本的 CRUD 也不一定适合需要。等业务管理提出需求你发现 gem 不能满足而需要 hack 的时候,你会觉得真不如自己直接开发。
如果是给网站管理人员用,我个人觉得 rake task 会比较有效率一些。
楼主你 out 了,多学习知识吧。
在这里看 https://github.com/antirez/redis 想用什么看就用什么看
另外我觉得学会使用不一定要读源代码,时间宝贵,做最有效率的事情。
有 pdf.js
一天时间就从零学会并完成一个项目的 demo, 那还招人干嘛。有这个写邮件的时间 N 个项目都自己写完了。
别折腾了 GVIM 了,赶紧切换到 Ubuntu 或者 Mac 吧。如果用 Ubuntu,VIM(命令行版) 才是正道。
不太明白进度条在这里的含义。
@iBachue ActiveRecord 不是数据库,是 Rails 的一部分。另外,AR 也只会自动加 callback 的部分,其余的逻辑要靠你自己写。
唯一性验证是一个 SELECT, 插入数据是一个 INSERT。常见的写法是 validation 和 create/save 分开。这样,在多个线程请求的时候,可能会出现第一个请求的验证通过后,第二个请求接着写入造成重复数据。这种可能性存在,虽然很小,毕竟几乎同时请求并造成相同数据的概率太低了。
另一个写法是不做 Validation, 直接一个 loop 插入,直到没有重复的数据为止,并包裹在一个 transaction 里面。这样就肯定没问题的了。写入 token 常见这种做法。
增加不必要复杂性。要改就直接改好了,这么改越改越复杂,越难维护。
分离好,用 Devise 就更需要分离。主要原因不在性能,在于修改的方便。存在 User 表里面的东西用 Devise 改起来是比较麻烦的,各种验证和 callback。而个人资料是用户可以随时随意改的,比如改个围脖地址什么的,不需要这么严密的验证。
其实真的没必要,那么多的模板,维护起来极其麻烦。同一个设备还有横有竖,和别的模板又有重复。
只是网站而已,不必当 mobile app 来要求,Responsive 写好了,一点都不费事。
这个是 Rails 定义的,我之前看了也有些奇怪,但没有深究,反正也很好理解。
定义在这里: http://api.rubyonrails.org/classes/ActiveSupport/Testing/Declarative.html#method-i-test
就是一个 DSL 转换 define_method