小编Dre*_*rew的帖子

什么是好的MySQL数据库模式工具?

我很快就开始了一个新项目,这次我想尝试使用一些更好的工具.最后一个项目,我为MySQL手工编写了我的所有数据库创建SQL.我希望有一些好的工具可以在MySQL中创建,维护和修改数据库模式.我的预算是我自己的口袋,所以免费(如在啤酒中)可能是最好的.:)

mysql database schema

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

测试Rails 3 Scopes有意义吗?

我有点不知所措.Rails 3中的Scopes的单元测试是否有意义?

一方面,我正在编写代码,我应该测试该代码.

但是,另一方面,基本上我的所有范围都是微不足道的.检查传递参数的一个变量几乎是我迄今为止最复杂的范围.

scope :author, proc { |author| where(:author_user_id => author }

该代码是微不足道的,并且或多或少地覆盖了实际使用范围的函数.

测试或不测试范围的最佳实践是什么?

unit-testing named-scope ruby-on-rails ruby-on-rails-3

15
推荐指数
2
解决办法
5572
查看次数

清除数组中的空字符串

我正在处理一堆由字符串组成的数组,而且我写过很多次 .delete_if { |str| str.empty? }

现在,我知道我可以自己将这个方法添加到数组类中,但是我希望有一种内置的方法来实现这一点,而不需要在基类中添加非标准方法.与向基类添加方法一样有趣的是,出于可维护性的原因,我不想这样做.

是否有内置的方法来处理这个?

ruby arrays

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

if和if-else之间有什么明显的区别吗?

鉴于以下代码片段,是否有任何明显的差异?

public boolean foo(int input) {
   if(input > 10) {
       doStuff();
       return true;
   }
   if(input == 0) {
       doOtherStuff();
       return true;
   }

   return false;
}
Run Code Online (Sandbox Code Playgroud)

public boolean foo(int input) {
   if(input > 10) {
      doStuff();
      return true;
   } else if(input == 0) {
      doOtherStuff();
      return true;
   } else {
      return false;
   }
}
Run Code Online (Sandbox Code Playgroud)

或者使用这段代码,单退出原则会更好吗?

public boolean foo(int input) {
   boolean toBeReturned = false;
   if(input > 10) {
      doStuff();
      toBeReturned = true;
   } else if(input == 0) {
      doOtherStuff();
      toBeReturned …
Run Code Online (Sandbox Code Playgroud)

java maintainability coding-style

8
推荐指数
1
解决办法
4241
查看次数

ERB的替代方案

我对RoR开发的重视程度越来越高.ERB对我不太合适.我之前用JSP做了一次.即使逻辑是特定于视图的,在我的标记中嵌入Ruby代码也不会是一个好的计划.也许我的恐惧是没有根据的,但感觉很危险.另外,还有很多打字.

我找到了HAML,我正在给它一些评价.如果它是一个很好的选择,也许你可以为它提供一些好的资源.

除了HAML之外,Rails View层还有其他ERB替代方案吗?

我对ERB的担忧是否不合理?

haml ruby-on-rails erb view ruby-on-rails-3

8
推荐指数
2
解决办法
5165
查看次数

在SCSS中访问Rails模型或帮助程序

我在Asset Pipeline中使用Rails 3.1和SCSS.无论如何都要访问SCSS文件中的Rails助手或控制器数据?就像是...

#main {
   background-color: #{current_user.preferences.background_color}
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以自己设置,$variables但我不确定如何从控制器的数据中填充它们.

ruby-on-rails sass ruby-on-rails-3.1 asset-pipeline

8
推荐指数
2
解决办法
4419
查看次数

访问打包到Ruby Gem中的文件

我有一个Buildr扩展,我将其打包为gem.我有一组脚本要添加到包中.目前,我将这些脚本存储为我正在写入文件的大文本块.我希望有单独的文件,我可以直接复制或读/写回来.我希望将这些文件打包到gem中.我没有问题将它们打包(之前只是将它们粘贴在文件系统中rake install),但我无法弄清楚如何访问它们.是否有Gem Resources捆绑类型的东西?

ruby gem packaging buildr

8
推荐指数
1
解决办法
4002
查看次数

多次迭代

是否有一种更简单,更清晰的方式来编写这样的代码:

(1..10).each do |i| 
  (1..10).each do |j|
    (1..10).each do |k|
      (1..10).each do |l|
         puts "#{i} #{j} #{k} #{l}"
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

理想情况下,我可以做...

(1..10).magic(4) { |i, j, k, l| puts "#{i} #{j} #{k} #{l}" }
Run Code Online (Sandbox Code Playgroud)

甚至更好......

magic(10, 4) { |i, j, k, l| puts "#{i} #{j} #{k} #{l}" }
Run Code Online (Sandbox Code Playgroud)

如果没有内置的东西,我怎么写一个类似上一个的方法?

ruby iteration loops coding-style

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

=〜运算符的顺序是否重要?

除了下面两个语句的编码风格之外还有什么区别吗?

/regex/ =~ "some_string_with_regex"

"some_string_with_regex" =~ /regex/

ruby regex operators

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

哈希解构

您可以使用 splat 运算符来解构数组。

def foo(arg1, arg2, arg3)
  #...Do Stuff...
end
array = ['arg2', 'arg3']
foo('arg1', *array)
Run Code Online (Sandbox Code Playgroud)

但是有没有办法破坏选项类型的哈希值呢?

def foo(arg1, opts)
  #...Do Stuff with an opts hash...
end
opts = {hash2: 'bar', hash3: 'baz'}
foo('arg1', hash1: 'foo', *opts)
Run Code Online (Sandbox Code Playgroud)

如果不是原生 ruby​​,Rails 是否添加了类似的东西?

目前我正在做这件事

foo('arg1', opts.merge(hash1: 'foo'))
Run Code Online (Sandbox Code Playgroud)

ruby hash splat

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