问题标签 [ruby-on-rails-5]

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 投票
4 回答
61285 浏览

ruby-on-rails - Rails 5:无法从参数中检索哈希值

我遇到了一个奇怪的问题。

是我得到的错误,当我将变量分配给参数哈希并尝试获取它的值时。

参数看起来像这样的哈希哈希:

现在,当我在控制台中执行此操作并将其分配给变量属性时,它可以完美地工作。所以我很难理解什么在这里不起作用——以及如何让它起作用。

0 投票
1 回答
359 浏览

ruby-on-rails - Rails 5:ActionCable 和 db 未同步

我能够成功设置 ActionCable、收听频道、验证请求等。但是,在创建后立即尝试连接到频道时遇到了一个奇怪的错误(很难解释,见下文)

我有一个设置,一个配置文件有一面墙,而且墙上有很多帖子。每个帖子都有自己的频道,墙本身也有自己的频道。在墙上创建帖子时,它会通过 ActionCable 进行更新:

我简化了它,但这按预期工作。当创建新帖子时,墙通道被触发,客户端收到帖子并且一切正常。

问题在于连接已广播的新帖子。当我去听新帖子时,它无法从数据库中获取帖子:

具体来说,订阅的 PostsChannel 会使用正确的 id 调用,但是当它去抓取帖子时:

无论发生什么,它总是返回 null 。换句话说,即使它 100% 存在,它也无法从数据库中获取帖子。

如果我在墙上已经有一些帖子,他们就可以成功连接。仅当通过 ActionCable 创建和广播帖子时,才能在数据库中找到它。如果我重新加载页面,我们刚刚创建的帖子就会起作用。不知道为什么在数据库中找不到新广播的帖子

0 投票
1 回答
237 浏览

bundler - Rails 5 beta 包更新有 gem 冲突

我正在尝试将 Rails 更新到 5.0.0.beta1,但出现如下错误:

没有 gem,包括minitest-rails-capybara,在我的 Gemfile 中明确设置了它的版本。我的应用程序中没有Gemfile.lock文件(我删除了升级分支中的现有文件。)

minitest-rails-capybara是当前 gemset(以及其他 gemset)中的最新版本。为什么会出现此错误?

编辑即使在开始使用新应用程序后,(rails new)如果我将这些行添加到 Gemfile,我也会收到上述错误:

版本:

  • 红宝石:2.3.0
  • 捆绑器:1.11.2
  • 宝石:2.5.1
0 投票
1 回答
39 浏览

ruby-on-rails - *_url 助手不适用于不同的子域级别

我有一个带有api子域的网站。在站点所在的同一域上,我还有一个dev子域,您猜对了,它是站点的开发版本。

我的问题是该站点的开发版本也有一个子域(api即:吐了出来,就吐了出来。api.dev.example.comapi/api(?:\..*)?/*_urlhttp://api.dev.example.com/somepathhttp://dev.example.com/somepath

我正在寻找一种不需要对开发站点与产品站点进行特殊处理的解决方案。基于请求的子域嗅探,所以一些这样的废话对我没有吸引力。

相关 routes.rb 内容:

0 投票
2 回答
760 浏览

ruby-on-rails - 将 rails_admin 与 rails5 一起使用时出错

我正在尝试将 rails_admin 与 rails5 应用程序一起使用。rails_admin 0.8.1 不起作用,因为

Bundler 找不到 gem "rails" 的兼容版本:在快照中 (Gemfile.lock): rails (= 5.0.0.beta1)

在 Gemfile 中:rails (< 5.1, >= 5.0.0.beta1)

然后我尝试使用来自github的最新代码

宝石'rails_admin',git:' https ://github.com/sferik/rails_admin.git '

现在我得到了相互冲突的机架依赖。

在快照(Gemfile.lock)中:机架(= 2.0.0.alpha)

在 Gemfile 中:rails (< 5.1, >= 5.0.0.beta1) 被解析为 5.0.0.beta1,它依赖于 actionmailer (= 5.0.0.beta1) 被解析为 5.0.0.beta1,它依赖于 actionpack (= 5.0.0.beta1) 被解析为 5.0.0.beta1,这取决于机架 (~> 2.x)

现在开始使用 rails5 还为时过早吗?我应该回到rails4.2吗?

0 投票
1 回答
372 浏览

ruby-on-rails - Rails - 使用 formobject 获取当前创建的元素的 ID

我想知道如何获取当前创建的模型记录的 ID,该记录由表单对象保存。我有:

我想把它改成更有意义的东西,比如:\

0 投票
3 回答
5847 浏览

nginx - RoR 5.0.0 ActionCable wss WebSocket 握手:意外响应代码:301

您好,我正在尝试使用 ror 5.0.0 beta(带有 puma)在生产模式下进行简单的聊天(在 localhost 中没有问题)。

这是我的Nginx配置:

这是config/redis/cable.yml

生产: url: redis://localhost:6379/1

开发: url: redis://localhost:6379/2

测试: url: redis://localhost:6379/3

config/environments/production.rb

这是我收到的错误:

application-[...].js:27 WebSocket 连接到“wss://mydomain/cable”失败:WebSocket 握手期间出错:意外响应代码:301

有小费吗?:) 谢谢

0 投票
3 回答
1712 浏览

ruby-on-rails - Rails 控制台错误:nil:NilClass (NoMethodError) 的未定义方法“每个”

任何尝试rails console在我的 Rails 应用程序的根目录中运行都会产生以下错误:

nil:NilClass (NoMethodError) 的未定义方法“每个”

完整的堆栈跟踪:

railtie.rb我已经在 Rails 库中的文件中将错误追溯到此块:

这又来自这个块:

我卸载了springgem 并安装了rubocopgem。否则,我的Gemfile包含默认宝石。

我的 Ruby 版本2.2.3高于2.2.2Rails 5 推荐的版本。

Ruby 版本: 2.2.3p173 Rails 版本: 5.0.0.beta1.1 RVM 版本: 1.26.11

0 投票
3 回答
1244 浏览

ruby-on-rails - Rails:将表单参数中的日期映射到 ActiveModel 对象

我有一个过滤器类,其中包括 ActiveModel 并由两个日期组成:

该模型呈现为如下形式:

现在的问题是,当表单被提交时,它将这个参数发送到控制器:

我通过控制器参数提取值:

如果我现在将 分配params[:meal_filter]给我的MealFilter班级@filter = MealFilter.new(meal_filter_params),我的日期字段不会正确更新。它接缝1i、2i、3i部分未正确分配给日期。

但是,如果使用ActiveRecord类,这可以正常工作。

我错过了一些包括吗?有谁知道,如果不在,这个魔法映射在哪里实现ActiveModel::Model

0 投票
1 回答
580 浏览

ruby-on-rails - 行动电缆。Redis 重连失败

在测试 RoR 5.0 beta 和 actionCable 时,我在控制台中遇到了这个错误。

[ActionCable] Redis reconnect failed.e

之后使用 HomeBrew 安装这个 Redis。但什么也没有发生。如何解决?

OS X。Rails 5 测试版。