小编Nic*_*ilt的帖子

符号到字符串问题

以下代码失败

world = :world
result = 'hello' + world
puts result #=> can't convert Symbol into String
Run Code Online (Sandbox Code Playgroud)

以下代码有效

world = :world
result = "hello #{world}"
puts result #=> hello world
Run Code Online (Sandbox Code Playgroud)

为什么?

使用ruby 1.8.7

ruby string symbols

38
推荐指数
2
解决办法
4万
查看次数

cp命令应该忽略一些文件

有时我需要执行以下命令

cp -rv demo demo_bkp
Run Code Online (Sandbox Code Playgroud)

但是我想忽略目录.git中的所有文件.我如何实现这一目标?复制.git文件需要很长时间,我不需要这些文件.

shell command-line

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

使用带参数的instance_eval调用proc?

我知道这有效:

proc = Proc.new do
  puts self.hi + ' world'
end

class Usa
  def hi
    "Hello!"
  end
end
Usa.new.instance_eval &proc
Run Code Online (Sandbox Code Playgroud)

但是我想将参数传递给proc,所以我试过这个不起作用:

proc = Proc.new do |greeting| 
  puts self.hi + greeting
end

class Usa
  def hi
    "Hello!"
  end
end
Usa.new.instance_eval &proc, 'world' # does not work
Usa.new.instance_eval &proc('world') # does not work
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我使它工作吗?

ruby

33
推荐指数
1
解决办法
8890
查看次数

如何使用水豚来验证记录数量

我在Rails 2.3.9项目中使用水豚和黄瓜.

我有用户索引页面,我有两个记录.使用capybara如何断言页面中只有两条记录.

HTML结构是这样的

<div class='records'>
  <li>record 1<li>
  <li>record 2 </li>
</div>
Run Code Online (Sandbox Code Playgroud)

html ruby cucumber capybara

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

如何找到我的桌子是MyISAM还是Innodb

可能重复:
如何检查特定表的MySQL引擎类型?

假设用户是一个跟随命令的表,则不会显示用户表是MyISAM还是Innodb.

desc users; 
Run Code Online (Sandbox Code Playgroud)

如何找到用户表的类型?

mysql

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

我如何通过新线加入

我正在阅读一个包含源代码的文件.我需要在每行之前追加2个空格.这就是我在做的事情.

data = read_file
data.split(/\n/).collect {|l| '  ' + l}.join('\n')
Run Code Online (Sandbox Code Playgroud)

然而,当我加入后,它会打印\n字面上并且它不是换行符.我该如何解决这个问题?

ruby

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

我应该用自己的红宝石.要么 @

这是我的红宝石代码

class Demo
  attr_accessor :lines

  def initialize(lines)
    self.lines = lines
  end
end
Run Code Online (Sandbox Code Playgroud)

在上面的代码我可以使用

    @lines = lines
Run Code Online (Sandbox Code Playgroud)

大多数情况下,我看到人们在初始化方法中使用@.在这两者中有没有一种首选方式?为什么?

ruby

25
推荐指数
2
解决办法
6358
查看次数

habtm关系不支持:依赖选项

HABTM关系不支持该:dependent选项是真的吗?

class Person < ActiveRecord::Base
  has_and_belongs_to_many :posts, :dependent => :destroy
end
Run Code Online (Sandbox Code Playgroud)

我正在尝试rails edge.

ruby-on-rails has-and-belongs-to-many

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

即使我的密码为空,mysql也会提示输入密码

我在ubuntu服务器上安装了mysql而没有指定密码.当我做

mysql -u root -p 
Run Code Online (Sandbox Code Playgroud)

它提示输入密码而不提供任何输入我只需点击输入就可以了.

现在我需要使用cron job对数据库执行一些操作.我的cron作业不起作用,因为mysql提示输入密码.我试过了

mysql -u root -p'' my_database
Run Code Online (Sandbox Code Playgroud)

但那也不起作用.

有什么建议吗?

mysql

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

将mysql默认引擎更改为innodb

我正在使用mac,我使用自制软件安装了mysql.

brew install mysql
Run Code Online (Sandbox Code Playgroud)

非常标准的安装.

mysql> show engines;
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
| CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |
| InnoDB     | YES …
Run Code Online (Sandbox Code Playgroud)

mysql

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