问题标签 [ruby-2.2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - ubuntu 15.04 上的 Rails 4.2.1 执行错误
我刚刚安装了 rails 4.2.1 和 ruby 2.2.2。当我运行时rails new blog
,我收到以下错误
我是 linux 新手,如果有人能告诉我哪里出了问题,它会有所帮助
ruby - 带有使用变量的声明性概念的 Ruby 语法错误
我正在尝试在 ruby 中使用反应式编程概念,我创建了两个代码块:
1 势在必行
2 声明式
但是第二个示例对我不起作用并给出以下错误:
请任何人帮助我找出代码中的错误。任何建议将不胜感激。
我知道第二个是伪代码,但有一件事让我感到惊讶,最高分的人让它跑题了?第二个代码也可以使用 Reactive Library 执行,最高分的程序员不知道它。
ruby - respond_to 的 Ruby 细化问题?和范围
我正在尝试向foo
Ruby 的Array
类添加一个实例方法,因此当它被调用时,数组的字符串元素将更改为字符串“foo”。
这可以通过猴子修补 RubyString
和Array
类来轻松完成。
现在我正在尝试使用 Ruby 2 的改进功能重写上述内容。我正在使用 Ruby 版本 2.2.2。
以下工作(在文件中,例如 ruby test.rb,但由于某种原因不在 irb 中)
foo
但是,在添加到Array
班级时我无法让它工作。
有两个问题:
- 使用新方法优化类后,
respond_to?
即使您可以在对象上调用该方法,也无法正常工作。尝试puts 'yes' if s.respond_to? :foo
在第二个代码片段的最后一行添加,你会看到“是”没有打印出来。 - 在我的 Array 改进中, String#foo 超出了范围。如果你
if x.respond_to? :foo
从 Array#foo 中删除,你会得到错误undefined method 'foo' for "a":String (NoMethodError)
。所以问题是:如何使 String#foo 细化在 Array#foo 细化中可见?
我如何克服这两个问题才能让它发挥作用?
(请不要提供不涉及细化的替代解决方案,因为这是一个理论练习,所以我可以学习如何使用细化)。
谢谢你。
ruby-on-rails - Sidekiq 3.4.2 和 Rails 4.2.0 出现“未定义方法 perform_at”错误
我有前任的工作课程
我正在尝试安排工作从现在开始执行 1 小时
但它给了我以下错误
使用 Rails 4.2.0、Ruby 2.2.0 和 Sidekiq 3.4.2。
ruby-on-rails - rails 4 在生产中的每个请求上重置会话
我正在使用 rails 4.2.0 和 ruby 2.2.0 实现 Web 应用程序,并面临设置完成新会话中的任何时间请求的问题。在那种情况下,我无法将任何内容保存到会话中,因为它已经消失了。这也导致无法检查真实性令牌的情况。
出于测试目的,在 中禁用了伪造保护ApplicationController
,因此这不是重置会话的原因。
我正在使用活动记录存储来保存会话,但 cookie 存储也是如此:
每次请求完成时,sessions
都会插入新的表条目,sessions_id
并且浏览器中的会话 cookie 指向新会话。
有什么想法可以重置会话吗?
这只发生在生产环境中。在开发中一切都很好。
ruby - 如何在 Ruby 中优化模块方法?
您可以使用
但是如何细化模块方法?这个:
提出:TypeError: wrong argument type Module (expected Class)
ruby - Ruby 单元测试 - 访问测试结果(成功/失败)?
我正在使用 Ruby 2.2。如果成功或失败,我需要运行单元测试并获取信息。我正在浏览 test-unit 和 minitest 的文档(Ruby 2.2 中单元测试的建议 gem),但我似乎找不到可以返回或存储有关测试结果的信息的方法。
我需要的只是测试是否失败/成功的信息,我需要从 Ruby 级别访问它。我想我必须使用特定的方法来运行测试 - 到目前为止,我只能通过运行测试文件来运行单个测试,而不是通过调用任何方法。
也许这只是我对Ruby的了解不足,无论如何我会很感激任何帮助。
ruby - 红宝石块内的赛璐珞异步不起作用
尝试在我的工作示例中实现赛璐珞异步似乎表现出奇怪的行为。
这里我的代码看起来
但是当我运行上面的代码时,我从来没有看到“在后台运行”
但是,如果我睡觉,代码似乎可以工作。
任何想法?为什么在上述两种情况下会有这样的差异。
谢谢。
ruby - 如何在 Ruby 退出时抑制堆栈跟踪?
这将打印一个 10 行的堆栈跟踪。
如何抑制堆栈跟踪并静默退出?
红宝石 2.2.0
ruby-on-rails - 如何知道 Ruby 中的 ffmpeg 转换是否成功?
我在 Rails 应用程序中运行 ffmpeg 命令将音频文件转换为 mp3:
转换后的示例conversion_result
如下:
"ffmpeg 版本 N-74748-gbaeb8f5 版权所有 (c) 2000-2015 FFmpeg 开发人员\n 使用 gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04) 构建\n 配置:--extra-libs=-ldl --prefix= /opt/ffmpeg --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libdcadec --enable-libfreetype --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame - -enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvo-aacenc --enable-libvidstab\n libavutil 54 . 31.100 / 54. 31.100\n libavcodec 56. 59.100 / 56. 59.100\n libavformat 56. 40.101 / 56. 40.101\n libavdevice 56. 4.100 / 56. 4.100\n libavfilter 5. 40.100 / 5. 40.100\n libavresample 2. 1. 0 / 2. 1. 0\n libswscale 3. 1.101 / 3. 1.101\n libswresample 1. 2.101 / 1. 2.101\n libpostproc 53. 3.100 / 53. 3.100\ nInput #0, mov,mp4,m4a,3gp,3g2,mj2, from '../mey_attachments/cache/25888dc028deaabaee4d4de19d4726573860dbce0b907131e9919d294113':\n 元数据:\n major_brand : 3gp4\n minor_version : 0\np_brand 创建时间兼容: 2015-09-01 16:34:01\n 持续时间: 00:00:08.57, 开始: 0.000000, 比特率: 426 kb/s\n 流isom3gp4\n creation_time : 2015-09-01 16:34:01\n 持续时间: 00:00:08.57, 开始: 0.000000, 比特率: 426 kb/s\n 流isom3gp4\n creation_time : 2015-09-01 16:34:01\n 持续时间: 00:00:08.57, 开始: 0.000000, 比特率: 426 kb/s\n 流
0:0(eng): 音频: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 48 kb/s (默认)\n 元数据:\n creation_time : 2015-09-01 16:34: 01\n
handler_name : SoundHandle\nOutput #0, mp3, to '/tmp/Voice00045.mp3':\n Metadata:\n major_brand : 3gp4\n minor_version : 0\n compatible_brands: isom3gp4\n TSSE : Lavf56.40.101\n Stream # 0:0(eng):音频:mp3 (libmp3lame)、44100 Hz、单声道、fltp(默认)\n 元数据:\n creation_time:2015-09-01 16:34:01\n handler_name:SoundHandle\n 编码器: Lavc56.59.100 libmp3lame\n流映射:\n Stream #0:0 -> #0:0 (aac (native) -> mp3 (libmp3lame))\n按 [q] 停止,[?] 寻求帮助\nsize= 67kB时间=00:00:08.56 比特率= 64.5kbits/s \n视频:0kB 音频:67kB 字幕:0kB 其他流:0kB 全局标题:0kB 复用开销:0.465427%\n"
命令执行后如何确保转换成功?