问题标签 [ruby-2.3]

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.

0 投票
2 回答
82 浏览

ruby-on-rails - Rails 视图路径未重置

给定 Rails 4.2,Ruby 2.3.1。

理论上,Rails 应该允许您完全重置视图路径,如此处所示,在源代码中。

但是,当我通过控制器回调重置 view_paths 时#view_paths=,会发生意外情况。

self._view_paths已成功重置,但#view_paths尚未获取这些更改,尽管只是self._view_paths. 为什么是self._view_paths正确的,而#view_paths不是?

注意:这很重要,因为 Rails#view_paths在搜索视图时使用,而不是self._view_paths.

0 投票
1 回答
56 浏览

ruby - 相同 Ruby 代码的不同输出?

我已经编写了一个将莫尔斯电码转换为字符的代码。问题是当我在终端上运行这段代码时,通过 IRB,我得到了预期的输出,但是当我在在线 IDE 上运行相同的代码时,我得到了不同的输出。

代码:

我在控制台和 IRB 中HEY JUDE 获得的输出: 我在在线编辑器中获得的输出:HEYJUDE

我不明白为什么空间内(嘿(空格)裘德)被删除并附加在在线编辑器(嘿裘德(空格))的末尾。

为了进一步检查我的代码,我 Iteration #{j} 在内部 while 循环中进行了一些检查,我得到了非常奇怪的行为。我得到的输出是:

代替

为什么会有这种行为?我已尽力遵循 ruby​​ 语法风格,但我是新手!

0 投票
0 回答
193 浏览

rvm - 使用 RVM 在 Web 服务器上运行 Ruby on Rails 5 的最佳实践

我意识到这个问题已经被问了一百万次了,但是经过几天的搜索,我仍然没有找到合适的答案。

我想在 Centos 7 上运行 Ruby on Rails 5。目前与 Centos 7 一起打包的默认 Ruby 是 2.0.0。对于 Rails 5,我需要更高版本,因此需要 RVM。

以下是我在使用 RVM 时遇到的一些问题:

  1. 如果我使用推荐的选项来安装 RVM

    RVM 和所有 Ruby gem 将安装到我的$HOME目录中,但这并不理想,因为服务器有很多用户,而且,由于它是一个 Web 服务器,当然不希望将 gem 包含在用户的主目录中,特别是如果这些目录可以随时删除(如果员工的合同结束)。

  2. 有些人建议安装 RVMsudo来解决这个问题(尽管同样多的人不赞成这种方法,因为它似乎否定了 RVM 的目的):

    并根据 RVM 自己的建议,我注释掉包含

    并且我的 gem 被安装到/usr/local/rvm/gems/ruby-2.3.1中,这很好,除了它会产生另一个问题:

    • 如果我运行gem install rails我会收到一个错误:

      是的,我可以通过将自己添加到rvm组来解决这个问题,但这并不理想,因为这意味着我总是必须记住将每个新用户添加到该组并从该组中删除每个旧用户。

    • 如果我运行,sudo gem install rails我也会收到一个错误:

      /li>
    • 如果我运行rvmsudo gem install rails,一切正常,除了我还必须运行bundle installusing rvmsudo,这会产生警告,因为不建议这样做。

    • 我可以使用root用户运行所有内容,这很有效......但是我需要记住更改我所有项目文件的所有者,因为 apache 并不完全具有 root 权限并且无法写入某些项目目录。root另外,在很多层面上运行似乎都是错误的。


换句话说,无论我在使用 RVM 时选择哪种方法,都会遇到一个问题或另一个问题。也许,成功部署此功能的其他人可以分享他们的见解。

我能想出的唯一合理的方法是创建一个专用的 Rails 用户,所有服务器用户都会在执行任何维护之前切换到该用户,但我担心像 apache 这样的服务不会“看到”宝石安装在本地。

评论,想法,想法?也许我对 RVM 缺少一些东西?

0 投票
1 回答
291 浏览

ruby-on-rails - 传统的 rails 命令不适用于 ruby​​ 2.3

我将我的 ruby​​ 版本更新到 2.3,现在当我尝试简单的命令时,我收到rails new myApp了以下错误消息:

你能帮我吗,我在网上找不到任何答案:)

0 投票
3 回答
338 浏览

ruby - 在 Ruby 中测量时间的惯用方法是什么?

这很丑陋:

我试过这个:

这个更好。但问题是result块结束后超出范围。

那么,有没有更好的计时方法呢?还是使用的好方法result

0 投票
2 回答
3548 浏览

ruby - ruby 2 上的“sslv3 警报握手失败”

我正在尝试使用带有 ruby​​ 的 web 服务,但这似乎是它的 SSL 配置和 ruby​​ 2 的问题:

我试过 curl 和 openssl 并且它有效:

它也适用于 ruby​​ 1.9:

使用 ruby​​ 2,我尝试使用 TLS,但没有成功

检查https://www.ssllabs.com/ssltest/analyze.html?d=w390w.gipuzkoa.net上的服务器 SSL 配置它返回此错误:“评估失败:意外失败”,因为我可以使用 ruby​​ 访问几个类似的 Web 服务2,我猜他们有一些错误配置。

任何想法如何使用 ruby​​ 2 访问此网络服务?

0 投票
1 回答
1035 浏览

ruby-on-rails - 如何在 Rails 5 中按特定顺序加载夹具

我有两个相互依赖的模型,帐户和用户。一个账户总是由一个用户创建的,它的 id 因此存储在账户的 creator_id 属性中,并且一个用户必然属于一个账户(但对属于一个账户的用户数量没有限制),该信息存储在用户的account_id 属性。同一用户可以创建不同的帐户。

我以这种方式表达了这些规则:

用户型号:

账户模式:

由于它们是相互依赖的,我使用了一种肮脏的解决方法来实例化它们:我首先创建帐户,然后在该操作之后强制用户创建他们的个人资料,并且他们的 user_id 在更新中作为 creator_id 添加到帐户中。

这就是我在 Account 模型中拥有的原因:

我正在研究一个只涉及用户模型的身份验证系统,所以我将这些行注释掉,直到昨天我取消注释它们。

我运行 db:migrate:reset, db:seed 和 db:migrate RAILS_ENV=test 没有任何问题,两个模型在控制台中都有正常的行为,但是当涉及到夹具(例如测试或 db:fixtures:load)时,我收到以下错误:

这是一个导致问题的典型夹具,第 16 行是注释的:

当我评论最后一行时,就没有问题了。但是,我想为我的测试加载正确的夹具,因为例如在这里创建的用户是无效的。

我在这篇文章中读到,固定装置按字母顺序加载。如果这是正确的,我不明白为什么我必须评论这一行,因为帐户应该在用户之前加载。

我发现该解决方案可行,但它不是来自官方文档,而且它已经很老了,可以追溯到 2007 年。我担心这会从一天到另一天停止工作。

有谁知道如何在 Rails 5 中按自定义顺序正确加载固定装置,或者对我的问题有另一种解决方案?先感谢您。

0 投票
0 回答
61 浏览

ruby-on-rails - Ruby 对每个集合项应用关联

我正在尝试通过在集合上一个接一个地应用的关联来访问特定对象。例如,我的数据库请求之一是:

get_current_user 返回一个唯一的用户, readable_projects 这个用户可以阅读的项目集合。到目前为止,一切都很好。但是,每个项目都有很多卡片,我想从集合中的每个项目中检索所有卡片,以便在这个结果中我可以查找特定卡片,然后检索其任务、关联Card和Task之间也是一个has_many。

我可以使用 each 遍历项目,但问题是我想使用查找的默认行为,这样如果在所有项目的所有卡片中我都找不到我正在寻找的卡片,则默认为RecordNotFound 例程被触发。我也可以使用 find_by 并手动引发异常,执行以下操作:

然而,我的主要目标是以任何阅读代码的人都可以轻松理解我在这里做什么的方式获得这张卡。

我所有的模型关系如下:

用户.rb:

项目.rb:

卡.rb:

我的问题是:有没有办法在一个非常容易理解的行中完成这样的请求?预先感谢您的帮助。

0 投票
0 回答
1944 浏览

openssl - 如何修复加载 RubyGems 插件时出错?

我最初的目的是通过获取最新版本的 rails 和 ruby​​ 来开始一个新的 rails 项目。这样做我弄坏了一些东西。

我的问题似乎经常以一种或另一种形式重复。我花了很多时间研究 StackOverflow 和其他网络资源的解决方案,但没有一个能帮助我解决我的问题。

我已经内爆了 rvm 并重新安装了它。我试图更新到最新的 openssl,但似乎并没有让我更接近于构建任何东西。我已经 apt-get update、dist-upgrade、upgrade、autoclean 并且我仍然在这里打字寻求帮助,以弄清楚我接下来要做什么来构建。

这是我使用许多 rvm 和 gem 终端命令得到的错误消息:

根据我使用的命令,我也会得到不同的信息,但是对于我使用的大多数 rvm 和 gem 命令来说,这一直是弹出来的。

我应该怎么做才能解决这个问题?您还需要我提供哪些其他信息来帮助找到解决方案?

提前致谢。

编辑

我使用此链接中的说明来帮助我:有用的链接

我在终端中输入的内容:

我最后收到了这个错误消息,但除此之外没有任何问题:Unknown ruby interpreter version (do not know how to handle): all.

0 投票
3 回答
1213 浏览

ruby-on-rails - 来自字符串数组的 Ruby 哈希访问值

我有一个如下的哈希:

通常我们可以像访问它一样访问它hash["a"][0]["c"]

但是,我有一个像这样的字符串:

(这可以根据用户输入而改变)

有没有使用上述字符串值访问哈希的简单方法?