这是关于ActiveRecord查询方法的问题:
first查找第一条记录(如果提供参数,则为前N条记录).如果没有定义订单,它将按主键排序.take提供记录(如果提供参数,则为N条记录),没有任何隐含的顺序.订单将取决于数据库实施.如果提供订单,则会受到尊重.usecase:基于唯一属性从数据库中检索记录,例如.
User.where(email: 'f@example.com')
Run Code Online (Sandbox Code Playgroud)
在这里,
first生成
SELECT "users".* FROM "users" WHERE "users"."email" = 'f@example.com' ORDER BY "users"."id"` ASC LIMIT 1
Run Code Online (Sandbox Code Playgroud)
take 生成
SELECT "users".* FROM "users" WHERE "users"."email" = 'f@example.com' LIMIT 1
Run Code Online (Sandbox Code Playgroud)
所以如上所述first增加了额外的订购条款.我想知道takevs 之间是否有性能差异first.
是take快first还是反之?
如果我想列出我可以使用的类的所有方法Class_Name.methods,那么,例如,列出FixNum类中的所有方法:
> 5.methods
=> [:to_s, :-@, :+, :-, :*, :/, :div, :%, :modulo, :divmod, :fdiv, :**, :abs, :magnitude, :==, :===, :<=>, :>, :>=, :<, :<=, :~, :&, :|, :^, :[], :<<, :>>, :to_f, :size, :zero?, :odd?, :even?, :succ, :integer?, :upto, :downto, :times, :next, :pred, :chr, :ord, :to_i, :to_int, :floor, :ceil, :truncate, :round, :gcd, :lcm, :gcdlcm, :numerator, :denominator, :to_r, :rationalize, :singleton_method_added, :coerce, :i, :+@, :eql?, :quo, :remainder, :real?, :nonzero?, :step, :to_c, :real, :imaginary, :imag, :abs2, :arg, :angle, …Run Code Online (Sandbox Code Playgroud) 在rails中,我们可以像这样生成模型
rails generate model post title:string body:text published:boolean
Run Code Online (Sandbox Code Playgroud)
根据rails指南,该命令具有以下语法
$ rails generate model
Usage: rails generate model NAME [field:type field:type] [options]
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以为每个字段指定限制/长度作为一部分[options]?另外,[options]参数有什么用?
考虑以下ActiveRecord的finder方法.
.take.例.Account.take.limit(1) 例. Account.limit(1)现在,两种方法都有不同的名称,但它们生成相同的查询:
SELECT "accounts".* FROM "accounts" LIMIT 1
Run Code Online (Sandbox Code Playgroud)
那么,.take&之间有什么区别.limit(1)?或者他们是一样的?
请考虑以下代码:
$string = '<device>
<id>1234</id>
<label>118</label>
<username>root</username>
<password>helloWorld</password>
<hardware>
<memory>4GB RAM</memory>
<storage_drives>
<storage_drive_1>2TB SATA 7,200RPM</storage_drive_1>
<storage_drive_2>1TB SATA 7,200RPM</storage_drive_2>
<storage_drive_3>Not Applicable</storage_drive_3>
<storage_drive_4>Not Applicable</storage_drive_4>
</storage_drives>
</hardware>
</device>';
$xml = new SimpleXMLElement($string);
$deviceDetails = Array();
foreach($xml as $element){
$tag = $element->getName();
$deviceDetails += Array($tag => '$element->$tag)',
);
}
Run Code Online (Sandbox Code Playgroud)
输出$detailsDetails数组如下:
Array
(
[id] => $element->$tag)
[label] => $element->$tag)
[username] => $element->$tag)
[password] => $element->$tag)
[hardware] => $element->$tag)
)
Run Code Online (Sandbox Code Playgroud)
这是错的.
我的问题是,如何$element->$tag开展工作?
我在测量师宝石的 Gemspec文件中找到了这个.以下几行有什么作用?
$:.push File.expand_path("../lib", __FILE__)
require "surveyor/version"
Run Code Online (Sandbox Code Playgroud)
为什么这样$:.push做?对我而言,它看起来就像requires是../lib/surveyor/version文件.如果是这样,我不能只用一行替换它吗?
require File.expand_path('../lib/surveyor/version', __FILE__)
Run Code Online (Sandbox Code Playgroud)
两者都是一样的吗?如果没有,那又有什么区别?
这是我学习python的第一天.所以这对你们许多人来说都是一个noob问题.请参阅以下代码:
#!/usr/bin/env python
import sys
def hello(name):
name = name + '!!!!'
print 'hello', name
def main():
print hello(sys.argv[1])
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
当我运行它
$ ./Python-1.py alice
hello alice!!!!
None
Run Code Online (Sandbox Code Playgroud)
现在,我无法理解它的"None"来源?
我想把我最后的2个提交压缩成一个,所以做了一个git rebase,按照以下方式:
git rebase -i HEAD~2
Run Code Online (Sandbox Code Playgroud)
但由于一个错字,我实际上最终推出的原因是:
git rebase -i HEAD-3
Run Code Online (Sandbox Code Playgroud)
现在,在Github Pull Request中,它显示了一些其他无关提交的提交.基本上,我想删除06674f0不属于我的提交,同时保留fcea5e0此PR.
如何解决简单拼写错误造成的混乱?
请考虑以下示例ruby类
class User
def hello
puts "hello"
end
end
Run Code Online (Sandbox Code Playgroud)
现在,用于初始化.有两种方法
正常变量
1.9.3p125 > tr = User.new
=> #<User:0x98778c4>
1.9.3p125 > tr.hello
Hello world
=> nil`
Run Code Online (Sandbox Code Playgroud)
实例变量:
1.9.3p125 > @tr = User.new
=> #<User:0x9890f2c>
1.9.3p125 > @tr.hello
Hello world
=> nil
Run Code Online (Sandbox Code Playgroud)
现在,在这两种情况下它都是一样的.那么正常变量和实例变量有什么区别?
在雅虎天气页面上,有一个链接标记为C将温度单位从更改Fahrenheit为Celsius.

我正在调试这个动作,并了解在将F转换为C的幕后执行的javascript是什么.调试这些事情的方式是什么?
链接:http://weather.yahoo.com/?w = 2295401