标签: ruby

如何在不按Enter的情况下获得单个角色?

如何在不按Enter键的情况下从终端获取单个键盘字符?我试过了Curses::getch,但这对我没用.

ruby getch

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

如果没有图像存在,如何在回形针中显示隐藏图像

如果没有图像与记录关联,如何防止调用关联图像的图像标记?

<%= image_tag @agent.avatar.url %>
Run Code Online (Sandbox Code Playgroud)

...如果没有与该代理相关联的图像,则会向我显示"Missing"文本.我想先测试看看是否有可用的图像,然后如果测试返回true则渲染上面的标记.

更好的是,如果没有专门提供图像,我还有指定默认图像吗?

ruby plugins ruby-on-rails paperclip

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

Ruby - lambda vs. Proc.new

可能重复:
Ruby中的proc和lambda有什么区别?

运行此Ruby代码时:

def func_one
    proc_new = Proc.new {return "123"}
    proc_new.call
    return "456"
end

def func_two
    lambda_new = lambda {return "123"}
    lambda_new.call
    return "456"
end

puts "The result of running func_one is " + func_one
puts ""
puts "The result of running func_two is " + func_two
Run Code Online (Sandbox Code Playgroud)

我得到的结果如下:

The result of running func_one is 123

The result of running func_two is 456
Run Code Online (Sandbox Code Playgroud)

至于func_two,第一个 的价值在哪里return,也就是说,123

谢谢.

ruby lambda return proc-object

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

如何一次显示Ruby on Rails表单验证错误消息

我试图了解如何实现这一目标.任何人都可以建议我或指出我正确的方向?

这允许每次显示每个字段1个错误.这几乎是我想做的,但并不完全正确.我想一次显示1个完整的错误消息.EG名字不能为空.一旦解决了它就转移到下一个错误.因此,如果用户在他们的姓氏中添加了数字,它将不再是空白,但它会显示另一个错误,说明只允许字母等.当错误被修复时,它将转到姓氏错误或者如果用户字段可能发送电子邮件正确地说出他们的姓氏.

<% @user.errors.each do |attr, msg| %>
<%= "#{attr} #{msg}" if @user.errors[attr].first == msg %> 
<% end %>
Run Code Online (Sandbox Code Playgroud)

ruby rubygems ruby-on-rails

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

如何在今天的Rails中验证日期?

我有一个包含属性的Active Record模型:expiry_date.我如何进行验证,使其在今天(当时的当前日期)之后?我对Rails和ruby完全不熟悉,我找不到类似的问题来回答这个问题?

我正在使用Rails 3.1.3和ruby 1.8.7

ruby validation ruby-on-rails

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

Ruby加载配置(yaml)文件在与源相同的目录中

在HOME/path_test /我有:

load_test.rb:

require 'yaml'
cnf = YAML::load(File.open('config.yml'))
puts cnf['Hello']
Run Code Online (Sandbox Code Playgroud)

config.yml:

Hello: world!!!
Run Code Online (Sandbox Code Playgroud)

当在HOME/path_test /我按预期得到:

-bash-3.2$ ruby load_test.rb 
world!!!
Run Code Online (Sandbox Code Playgroud)

在HOME /(cd ..)我得到

-bash-3.2$ ruby path_test/load_test.rb 
path_test/load_test.rb:3:in `initialize': No such file or directory - config.yml     (Errno::ENOENT)
    from path_test/load_test.rb:3:in `open'
    from path_test/load_test.rb:3:in `<main>'
Run Code Online (Sandbox Code Playgroud)

这是正确的行为,但不是我所希望的:)

有没有办法相对于源文件加载.yml文件,而不是相对于当前工作的DIR?

解决方案(load_Test.rb):

require 'yaml'
fn = File.dirname(File.expand_path(__FILE__)) + '/config.yml'
cnf = YAML::load(File.open(fn))
puts cnf['Hello']
Run Code Online (Sandbox Code Playgroud)

ruby yaml path configuration-files

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

Ruby中的Object和BasicObject有什么区别?

这些课程有什么区别?他们的目的之间有什么区别?

ruby ruby-1.9

39
推荐指数
1
解决办法
5912
查看次数

在MacOS Sierra上使用RMagick 2.16的ImageMagick 7找不到MagickWand.h

我升级到imagemagick-7.0.4-3.sierra,现在我以前安装的RMagck 2.16失败了.我查了一下MagicWand:

$ find /usr/local -name MagickWand.h /usr/local/Cellar/imagemagick/7.0.4-3/include/ImageMagick-7/MagickWand/MagickWand.h

所以它似乎在那里.我也重新安装并重新链接了pgk-config.没有帮助.有任何想法吗?

ruby rmagick imagemagick macos-sierra

39
推荐指数
2
解决办法
9352
查看次数

Ruby Fiddle中的嵌套结构

  • 是否有可能在Ruby的Fiddle lib中定义嵌套结构签名?
  • 或者在这一点上通过我不熟悉的任何其他最新图书馆?

这是一个绝望的问题,因为我搜索了文档和Fiddle的代码,发现没有关于嵌套结构的线索(尽管FFI库能够做到这一点,而Fiddle应该是FFI的包装器).

ruby dll shared-libraries fiddle

39
推荐指数
1
解决办法
1059
查看次数

带有Ruby 2.5.1控制台的Rails 5.2.0 - `warning:``already`初始化常量FileUtils :: VERSION

我目前遇到了新的rails应用程序的问题,更具体地说:

  • Rails 5.2.0
  • Ruby 2.5.1p57(2018-03-29 Revision 63029)[x86_64-darwin17]
  • rvm 1.29.4(最新)作者:Michal Papis,Piotr Kuczynski,Wayne E. Seguin [ https://rvm.io]

当我运行时rails c,它会生成一个警告链接到fileutils gem,如下所示:

`/usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/fileutils.rb:90:` `warning:` `already` initialized constant FileUtils::VERSION
/usr/local/lib/ruby/gems/2.5.0/gems/fileutils-1.1.0/lib/fileutils.rb:92: warning: previous definition of VERSION was here
/usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/fileutils.rb:1188: warning: already initialized constant FileUtils::Entry_::S_IF_DOOR
/usr/local/lib/ruby/gems/2.5.0/gems/fileutils-1.1.0/lib/fileutils.rb:1267: warning: previous definition of S_IF_DOOR was here
/usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/fileutils.rb:1446: warning: already initialized constant FileUtils::Entry_::DIRECTORY_TERM
/usr/local/lib/ruby/gems/2.5.0/gems/fileutils-1.1.0/lib/fileutils.rb:1541: warning: previous definition of DIRECTORY_TERM was here
/usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/fileutils.rb:1448: warning: already initialized constant FileUtils::Entry_::SYSCASE
/usr/local/lib/ruby/gems/2.5.0/gems/fileutils-1.1.0/lib/fileutils.rb:1543: warning: previous definition of SYSCASE was here
/usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/fileutils.rb:1501: warning: already initialized …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails rvm rbenv fileutils

39
推荐指数
2
解决办法
9415
查看次数