问题标签 [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 投票
1 回答
509 浏览

ruby-on-rails - Rails 基于 Rails Environment 定义根 url

有什么方法可以根据 Rails 环境定义不同的根 url。我想root :to => 'pages#index'为开发和登台环境以及root :to => 'beta_pages#index'生产环境设置。

提前致谢。

0 投票
1 回答
2705 浏览

ruby-on-rails - actioncable 无法连接到 websocket

我无法连接到 actioncable websocket。

我将此行添加到我的 routes.rb

我将此文件添加到我的应用程序路径:cable/config.ru

频道/application_cable/channel.rb

频道/application_cable/connection.rb

和我在 assets/javascript/channels/index.coffee 下的 javascriptfiles

然后我开始了我的rails应用程序:

和我的 ActionCalbe-Server 与:

当我在浏览器中打开我的应用程序时,出现以下错误:

我怎样才能解决我的问题?我没有发现错误:/

0 投票
1 回答
1217 浏览

ruby-on-rails - 30.seconds.ago 之类的东西是如何实现的?

我在这里找到了这个问题。

30.seconds.ago真的很想知道如何在 Rails 中实现类似的东西的技术解释。

方法链?Numeric按照以下方式使用:http: //api.rubyonrails.org/classes/Numeric.html#method-i-seconds

还有什么?

0 投票
1 回答
8585 浏览

ruby-on-rails - Rails:多个控制器共享的方法

我有两个控制器,即 1)carts_controller 2)orders_controller

注意:method3正在使用method1method2CartsControllershowcart.html.erb使用method3的视图并且工作正常。

现在从订单的角度来看,我需要显示购物车(showcart.html.erb),但由于method3定义了帮助程序,carts_controller因此它无法访问它。

如何解决?

0 投票
2 回答
9524 浏览

ruby-on-rails - CollectionProxy vs AssociationRelation

我想知道ActiveRecord::Associations::CollectionProxy和之间的区别ActiveRecord::AssociationRelation

所以如果我这样做:

v = Vehicle.new

v.wheels # => #<ActiveRecord::Associations::CollectionProxy []>

v.wheels.all # => #<ActiveRecord::AssociationRelation []>

我不知道它们之间有什么区别,为什么要这样实现?

0 投票
0 回答
458 浏览

api - 为什么 Rails 5 边缘版 API-only 应用程序在 Gemfile 中包含 Sprockets 和 SAAS?

我使用以下命令生成了一个基于 Rails 5 edge 版本的仅骨架 API 应用程序:

它的Gemfile包括 Sprockets 和 SASS gems,可以在其中看到。

我只是想知道 Sprockets 和 SASS 应该在仅 API 的应用程序中起到什么作用?是故意这样做还是在 Rails 5 正式发布时应该修复。

我还观察到,当生成 Rails 应用程序时,生成器确实创建了 assets 文件夹,但是稍后将其删除,如下所示的输出所示:

谢谢。

0 投票
3 回答
3631 浏览

params - Rails 5 - 控制器规范示例 - 将参数设置为 nil 值将其值设置为空白字符串

我在基于Rails 4.2.0 和 Ruby 2.2.1的仅 API 应用程序中传递了以下控制器规范示例

但是,针对Rails 5(边缘版本)和 Ruby 2.2.3评估我的应用程序,相同的规范失败并出现以下错误:

我确实在几个点检查了 Rails 源代码,发现 nil 值在到达控制器的目标操作逻辑之前被转换为空白值。

这种改变的行为是将属性设置为空字符串,而它们应该是 nil。

在我的应用程序的 Gemfile(用于使用 Rails 5)中,我使用以下代码指定了 Rails:

在 Gemfile.lock 中可以看到以下内容(Gem 和 Dependencies 部分被截断以缩短它):

任何人都可以让我知道是什么变化导致了这种情况吗?我想这与 Rails 5 或最新 Rack 的变化有关。这是某种应该在最终发布版本中修复的错误,还是故意更改。

0 投票
0 回答
467 浏览

active-model-serializers - ActiveModelSerializers (0.10.0.rc3) 对象的关系不是使用默认的 FlattenJson 适配器生成的

Rails 5 Alpha 版本 / Ruby 2.2.3 / active_model_serializers (0.10.0.rc3)(以下简称 AMS

我已经有一个使用Rabl-Rails生成 JSON 响应的纯 API 应用程序。

我正在努力使其准备好与 Rails 5 一起使用,作为评估 Rails 5 内置 API 功能的一部分,尤其是 ActiveModel::Serializers 可以提供的可重用性和灵活性。

我创建了几个序列化程序

应用程序中的 JSON 响应是使用任何现有模板以复合方式创建的,并且base_serializer包含有关可以序列化的资源的基本数据。

下面显示的是我最初创建的 3 个序列化程序:

对于 ActiveRecord 型号设备

对于 ActiveRecord 模型客户端

对于 ActiveRecord 模型提供者

提供者模型

客户模型

设备型号

问题

序列化 Device 对象时,其客户端节点不包含Client::BaseSerializer中定义的客户端提供程序节点belongs_to :provider, serializer: Provider::BaseSerializer

但是,在序列化 Client 对象时,它包含提供程序节点:

从上面可以看出,当我们在其“客户端”属性中生成设备的 json 时,并没有生成客户端的提供者关系。但是,当我们生成客户端的 json 时,它包含“提供者”属性。传递任何包含选项,如下所示

如此处所述没有任何效果。

我深入研究了 AMS 源代码,发现include只有当适配器是JSON API. 但是,默认适配器是base.config.adapter = :flatten_json.

从适配器的实现和方法(如下所示)中可以看出,ActiveModel::Serializer#attributes(options = {})在序列化期间仅考虑以下数据:

  1. 对象的属性
  2. 对象的关系及其属性。不考虑关系自身的关系。

ActiveModel::Serializer::Adapter::FlattenJson < ActiveModel::Serializer::Adapter::Json

ActiveModel::序列化器

由于我的 JSON 结构是自定义和预定义的,因此我无法切换到 JSON API 适配器。这留下了仅使用属性的选项,例如

但是这样我就无法灵活地为:provider 属性使用自定义序列化程序。

问题:

  1. 有什么办法可以解决上述问题并达到预期的效果?

  2. 是否有任何规定可以忽略属性被包含在序列化哈希中?例如,在我的 JSON 模板中使用 Rabl-Rails,我可以执行以下操作:

    /li>

如果DeviceDecorator#exclude_client?返回 false,则不会在 JSON 中生成 :client 节点。

谢谢。

0 投票
1 回答
4397 浏览

sprockets - 升级后如何在 Rails 5 中使用 sprockets 4

在升级我的 Rails 4.2 应用程序后,我一直在尝试使用 Rails 5。

更改版本后,我使用了命令bundle exec rake rails:update

访问某些视图时出现错误:

0 投票
5 回答
6334 浏览

ruby-on-rails - 未初始化的常量 > ActionCable::Server::Configuration::ApplicationCable

当我运行服务器时,它的抛出错误显示在下面的日志中。我用谷歌搜索了很多,但没有找到背后的原因。有人请给它一些光。

宝石文件

日志: