标签: ruby

您喜欢哪种样式的Ruby字符串引用?

您喜欢哪种样式的Ruby字符串引用?到目前为止,我总是使用'single quotes'除非字符串包含某些转义序列或插值,在这种情况下我显然必须使用"double quotes".

但是,有没有理由不在任何地方使用双引号字符串?

ruby string

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

ruby方法名称中的变量

我有以下代码:

for attribute in site.device_attributes
  device.attribute
end
Run Code Online (Sandbox Code Playgroud)

我希望代码用"attribute"的值替换方法名称.

我尝试了device."#{attribute}"各种各样的排列.

这完全不可能吗?我错过了什么吗?

我已经考虑过覆盖method_missing,但是当我的问题是我需要调用"未知"方法时,我无法弄清楚这对我有什么帮助.

ruby ruby-on-rails

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

如何删除特殊字符?

我正在练习Ruby和正则表达式删除某些不需要的字符.例如:

input = input.gsub(/<\/?[^>]*>/, '')
Run Code Online (Sandbox Code Playgroud)

对于特殊字符,例如☻或™:

input = input.gsub('&#', '')
Run Code Online (Sandbox Code Playgroud)

这只留下数字,好的.但这仅在用户输入特殊字符作为代码时才有效,如下所示:

&#153;
Run Code Online (Sandbox Code Playgroud)

我的问题: 如果用户输入没有代码的特殊字符,如何删除特殊字符,如下所示:

™ ?
Run Code Online (Sandbox Code Playgroud)

ruby regex ruby-on-rails

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

像ruby一样,python中的所有东西都是对象吗?

对另一个Stack Overflow问题的评论指出,Python就像Ruby一样,因为它与"一切都是对象"有关,而Python中的所有内容都是一个对象,就像Ruby一样.

这是真的?像ruby一样,python中的所有东西都是对象吗?

两者在这方面有何不同,或者它们是否真的相同?例如,你可以拿一个号码来做我看过的红宝石:

y = 5.plus 6
Run Code Online (Sandbox Code Playgroud)

可以在Python中以相同的方式完成吗?

ruby python language-comparisons object

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

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

使用参数提升自定义异常

我在rails中的模型上定义一个自定义Exception作为一种包装异常:( begin[code]rescue[raise custom exception]end)

当我提出异常时,我想传递一些关于a)内部函数引发错误的模型实例,以及b)捕获的错误的信息.

这是一个模型的自动导入方法,该方法由来自外部数据源的POST请求填充.

tldr; 如果您自己定义Exception,如何将参数传递给Exception?我在该Exception上有一个初始化方法,但raise语法似乎只接受一个Exception类和消息,没有传递给实例化过程的可选参数.

ruby exception-handling ruby-on-rails exception

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

获取在类中声明的所有实例变量

请帮我获取在类中声明的所有实例变量,instance_methods方法同样向我展示了类中可用的所有方法.

class A
  attr_accessor :ab, :ac
end

puts A.instance_methods  #gives ab and ac

puts A.something         #gives me @ab @ac...
Run Code Online (Sandbox Code Playgroud)

ruby

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

错误:无法在Mavericks上构建gem原生扩展

我试图bundle在OSX 10.9上运行我的Rails项目.pg使用此错误进入gem 时失败:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/kyledecot/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... yes
checking for PQconnectionUsedPassword()... yes
checking for PQisthreadsafe()... yes
checking for PQprepare()... yes
checking for PQexecParams()... yes
checking for PQescapeString()... yes
checking for PQescapeStringConn()... yes
checking for PQescapeLiteral()... yes
checking …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails pg ruby-on-rails-4 osx-mavericks

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

可以在Rails中为belongs_to关联设置别名吗?

我有一个有belongs_to关联的模型:

class Car < ActiveRecord::Base
  belongs_to :vendor
end
Run Code Online (Sandbox Code Playgroud)

所以我可以打电话car.vendor.但我也想打电话car.company!所以,我有以下内容:

class Car < ActiveRecord::Base
  belongs_to :vendor
  def company
    vendor
  end
end
Run Code Online (Sandbox Code Playgroud)

但这并没有解决分配情况car.company = 'ford',所以我需要为此创建另一种方法.alias我可以使用一种简单的机制进行关联吗?我可以只使用alias_method :company, :vendoralias_method :company=, :vendor=

ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 ruby-on-rails-4

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

使用正则表达式进行Ruby Email验证

我有一大堆我正在浏览的电子邮件.很多电子邮件都有拼写错误.我正在尝试构建一个检查有效电子邮件的字符串.

这就是我对正则表达式的看法.

def is_a_valid_email?(email)
  (email =~ /^(([A-Za-z0-9]*\.+*_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\+)|([A-Za-z0-9]+\+))*[A-Z??a-z0-9]+@{1}((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,4}$/i)
end
Run Code Online (Sandbox Code Playgroud)

如果电子邮件为下划线且只有一个句点,则会通过.我有很多电子邮件,名称本身有一个以上的句号.我如何在正则表达式中检查它.

hello.me_1@email.com # <~~ valid
foo.bar#gmail.co.uk # <~~~ not valid
f.o.o.b.a.r@gmail.com # <~~~valid 
f...bar@gmail.com # <~~ not valid 
get_at_m.e@gmail  #<~~ valid
Run Code Online (Sandbox Code Playgroud)

有人可以帮我改写我的正则表达式吗?

ruby regex email validation

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