小编Aje*_*i32的帖子

如何使用rake db:migrate只回滚一步

在文件db/migrate夹中添加迁移文件并运行后rake db:migrate,我想回到上一步,我认为使用VERSION=n是正确的方法,但我不知道使用n的正确值.有没有命令检查当前的n值?

如果有人能提供有关如何使用的完整说明,那就太好了rake db:migrate.

rake ruby-on-rails dbmigrate

185
推荐指数
4
解决办法
12万
查看次数

Ruby on Rails回调,有什么区别:before_save和:before_create?

能不能详细解释一下什么是:before_save:before_createRuby on Rails的回调是,他们有使用Rails验证该怎么办?验证是在:before_save或之后进行的:before_create吗?

ruby validation ruby-on-rails ruby-on-rails-3

176
推荐指数
2
解决办法
7万
查看次数

覆盖ActiveRecord属性方法

我正在谈论的一个例子:

class Person < ActiveRecord::Base
  def name=(name)
    super(name.capitalize)
  end
  def name
    super().downcase  # not sure why you'd do this; this is just an example
  end
end
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但我刚刚阅读了ActiveRecord :: Base文档中覆盖属性方法的部分,并建议使用read_attributewrite_attribute方法.我认为在上面的例子中我所做的事情肯定有问题; 否则,为什么他们会将这些方法作为覆盖属性方法的"正确方法"?他们也在逼迫一个更丑陋的习语,所以必须有充分的理由......

我真正的问题是:这个例子有问题吗?

oop activerecord ruby-on-rails

147
推荐指数
3
解决办法
6万
查看次数

使用键盘快捷键浏览Google搜索结果

有些人会认为这与编程无关,但我认为是这样,因为在我遇到编程问题的大多数时候,我会在Google上搜索解决方案或方法,以便在我开始从头开始编写之前做我打算做的事情.让我们面对现实,我们都复制贴纸......

我不喜欢把手从键盘上移开.在您提交查询后,Google会有一项功能,然后按下Tab它将开始在搜索结果中导航.很可能是因为他们有一个tabindex属性被删除了.

有谁知道为什么有时它会起作用,有时它不会?我开始认为我应该创建一个Chrome应用程序,它会在结果中添加选项卡索引,但在100%确定此功能已被删除之前,我不想这样做.

google-chrome google-search

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

异步与多线程 - 有区别吗?

异步调用是否始终创建新线程?两者有什么区别?

异步调用是始终创建还是使用新线程?

维基百科说:

在计算机编程中,异步事件是独立于主程序流发生的事件.异步操作是在非阻塞方案中执行的操作,允许主程序流继续处理.

我知道异步调用可以在单线程上完成吗?这怎么可能?

language-agnostic multithreading asynchronous

129
推荐指数
9
解决办法
5万
查看次数

使用暂存区域中的未提交文件撤消git reset --hard

我正在努力恢复我的工作.我愚蠢地做了git reset --hard,但在那之前我只做过get add .而且没做过git commit.请帮忙!这是我的日志:

MacBookPro:api user$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)

#   modified:   .gitignore
...


MacBookPro:api user$ git reset --hard
HEAD is now at ff546fa added new strucuture for api
Run Code Online (Sandbox Code Playgroud)

git reset --hard在这种情况下可以撤消吗?

git undo git-add git-reset git-commit

102
推荐指数
5
解决办法
5万
查看次数

为什么Ruby没有真正的StringBuffer或StringIO?

我最近阅读了一篇关于在Ruby中使用的好文章StringIO.但是,作者没有提到的是,这StringIO只是一个"我".没有"O".你不能这样做,例如:

s = StringIO.new
s << 'foo'
s << 'bar'
s.to_s
# => should be "foo\nbar"
# => really is ''`
Run Code Online (Sandbox Code Playgroud)

Ruby确实需要一个像Java一样的StringBuffer.StringBuffers有两个重要目的.首先,它们让您测试Ruby的StringIO所做的输出的一半.其次,它们对于从小部件构建长弦很有用 - Joel一次又一次地提醒我们的是非常慢的东西.

有替代品吗?

Ruby中的字符串确实是可变的,但这并不意味着我们应该始终依赖于该功能.如果stuff很大,例如,它的性能和内存要求非常糟糕.

result = stuff.map(&:to_s).join(' ')
Run Code Online (Sandbox Code Playgroud)

在Java中执行此操作的"正确"方法是:

result = StringBuffer.new("")
for(String s : stuff) {
  result.append(s);
}
Run Code Online (Sandbox Code Playgroud)

虽然我的Java有点生疏.

ruby string io buffer

52
推荐指数
4
解决办法
3万
查看次数

在使用HTTP/2时,缩小和连接JS/CSS文件以及使用精灵图像仍能提供性能优势吗?

使用新的HTTP/2协议,重复HTTP请求到同一服务器所产生的开销已大大减少.

考虑到这一点,缩小和连接JavaScript/CSS文件以及将图像组合成精灵还有任何显着的性能优势吗?或者,当使用HTTP/2时,这些做法是否不再有用?

javascript css minify http2

45
推荐指数
1
解决办法
5931
查看次数

有没有办法在PostgreSQL查询中定义命名常量?

有没有办法在PostgreSQL查询中定义命名常量?例如:

MY_ID = 5;
SELECT * FROM users WHERE id = MY_ID;
Run Code Online (Sandbox Code Playgroud)

sql postgresql

41
推荐指数
5
解决办法
3万
查看次数

在Ruby中,有没有办法在子类中"覆盖"常量,以便继承的方法使用新常量而不是旧常量?

在Ruby中,是否有一种方法可以"覆盖"子类中的常量,从而从子类调用继承的方法会导致该方法使用新常量而不是旧常量?例如:

class SuperClass
  CONST = "Hello, world!"
  def self.say_hello
    CONST
  end
end

class SubClass < SuperClass
  override_const :CONST, "Hello, Bob!"
end

SuperClass.say_hello # => "Hello, world!"
SubClass.say_hello   # => "Hello, Bob!"
Run Code Online (Sandbox Code Playgroud)

如果没有,是否有办法做这样的事情呢?

class SuperClass
  CONST = "Hello, world!"
  def self.say_hello
    CONST
  end
end

SubClass = SuperClass.clone
SubClass.send(:remove_const, :CONST)
SubClass.const_set(:CONST, "Hello, Bob!")

SubClass.say_hello # => "Hello, Bob!"
Run Code Online (Sandbox Code Playgroud)

注意:我在irb中尝试了我的第二个例子,它似乎工作,除了在克隆类之后类方法似乎无法访问CONST:

irb(main):012:0> SubClass.say_hello
NameError: uninitialized constant Class::CONST
        from (irb):4:in `say_hello'
        from (irb):12
        from C:/Ruby193/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

ruby

40
推荐指数
2
解决办法
1万
查看次数