问题标签 [activemodel]

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 回答
311 浏览

xml - rti/FastXml 或类似的东西是否可以与 rails 3 一起使用来加速 xml 渲染?

我们在rails 3中实现了一个 REST api ,它使用yajl后端用于json. 它目前生成json响应的速度明显快于xml序列化超过 20 行时。

我的下一个想法是,rail 3 必须有一个类似的 C 库插件,它将使用libxml或类似 for to_xml,就像我们已经在使用libyajlfor一样to_json

迄今为止,我只找到了rti/FastXml项目:https
://github.com/rti/FastXml 它声称是我想要的,但自 2010 年初以来一直没有更新,并且没有可见的分叉。

有谁知道FasterXml是否适用于rails 3

更重要的是,有没有人知道让 rails 3 更快的其他方法render :xml => @search_results

非常感谢您的帮助。

0 投票
2 回答
320 浏览

ruby-on-rails - 如何为 ToyStore 模型构建观察者?

给定一个模型:

我可以ActiveModel::Observer用来构建观察者吗?我删除了 ActiveRecord 框架,因为我没有在我的 Rails 应用程序中使用它。

添加观察者,如:

似乎不起作用。在应用程序配置中包含观察者不起作用,因为 ActiveRecord 框架已被移除。

0 投票
5 回答
18636 浏览

ruby-on-rails - 控制 rails 验证的顺序

我有一个 rails 模型,它有 7 个由用户通过表单填写的数字属性。

我需要验证每个属性的存在,这显然很容易使用

但是,我还需要运行一个自定义验证器,它需要一些属性并用它们进行一些计算。如果这些计算的结果不在一定范围内,则应宣布该模型无效。

就其本身而言,这也很容易

然而问题是方法“验证”总是在方法“验证”之前运行。这意味着如果用户将必填字段之一留空,rails 在尝试使用空白属性进行计算时会引发错误。

那么如何首先检查所有必需属性的存在呢?

0 投票
1 回答
300 浏览

ruby-on-rails - Rails 3: Dependent => :deny 还是类似的?

我有一个模型“位置”,其中有许多“课程”

如果我销毁一个位置,我希望拒绝销毁请求,除非该位置与任何课程之间没有关系。我认为有一些非常简洁的方法可以做到这一点,但我找不到任何东西。

Soo ...启用此类功能的最优雅/简单/简洁的方式是什么?

0 投票
2 回答
8535 浏览

ruby-on-rails - ActiveModel::SecurePassword 未定义方法 `password_digest='

我尝试按照http://bcardarella.com/post/4668842452/exploring-rails-3-1-activemodel-securepassword使用 rails 3.1 ActiveModel::SecurePassword

最后我闯红灯...

用户.rb

工厂.rb

spec_user.rb

我得到一个红灯...

我认为这是 rake db:migrate 问题,我查看了 rails c ,但显然 password_digest 已定义。

0 投票
2 回答
5278 浏览

ruby-on-rails - Rails 3自定义格式验证错误?

使用此模型:

作为一个相当人为的例子。错误出现为:

我如何自己提供格式?

我查看了源代码,ActiveModel::Errors#full_messages它是这样做的:

注意:default选项中的格式字符串?所以我尝试了:

但随后错误消息实际上显示为:

然后我尝试包括插值字符串%{message},从而覆盖%{attribute} %{message}Rails 默认使用的版本。这会导致异常:

SubscriptionsController#create 中的 I18n::MissingInterpolationArgument

"%{message}" ({:model=>"Subscription", :attribute=>"Email", :value=>""} 中缺少插值参数

然而,如果我使用插值字符串%{attribute},它不会出错,它只是两次吐出人性化的属性名称。

有人有这方面的经验吗?我总是可以先有属性名称,但通常我们需要一些其他字符串(营销人员总是让事情变得更复杂!)。

0 投票
1 回答
210 浏览

ruby-on-rails - 调用 new 后 ActiveModel 销毁

我正在使用遵循此处解释的 resource_controller 原则的控制器。

如您所见,我无法完全控制(新建、创建等)所有这些预加载数据,这意味着如果我想创建一个新实体,假设@user已经调用了以下代码@user = User.new

我可以包含一些验证的唯一方法是通过回调,但是一旦回调决定取消新方法,我总是会遇到 Hash freeze 错误。换句话说,我不能说 @user = User.new @user.destroy

我能想出的唯一技巧是 @user = User.new @user.save @user.destroy

有谁知道更好的方法,不涉及将内容保存到数据库?顺便说一句,活动记录和活动模型有什么区别?

0 投票
1 回答
504 浏览

ruby-on-rails-3 - 在 Rails 3 ActiveModel 中自定义验证出错

我正在尝试使用Date Validator Gem,但我遇到了一个错误,我不确定是不是因为模型不是 Active Record(我见过有人建议 ActiveModel 中的验证有点时髦不在 ActiveRecord 中时)。

我正在使用 Ruby 1.9.2 和 Rails 3.0.7。我已经附上了下面的课程和错误。

提前感谢您的帮助!

班级

Rails 控制台出错

0 投票
1 回答
526 浏览

ruby-on-rails - 访问模型属性的动态范围

我目前正在使用 Rails 3 中的批量分配安全性来确定用户可以更新其模型的级别。例如,此代码允许我根据用户级别保护属性。

我希望能够对查找时出现的属性使用相同的想法。例如,我想说

并取回信用等级。将此与做相比

并取回除 credit_rating 之外的所有属性

这是rails支持但我错过的东西吗?

0 投票
1 回答
1823 浏览

ruby-on-rails - ActiveRecord has_attribute 的 ActiveModel 等效项?

我使用 ActiveModel 是因为我连接到第三方 API 而不是数据库。我已经编写了自己的初始化程序,这样我就可以传入一个哈希并将其转换为模型上的属性——以支持应用程序中的某些表单。

问题是我想使用相同的模型来处理来自 API 的数据检索,但这有很多我并不真正关心的其他数据。因此,我想在迭代从 API 返回的哈希时进行检查,并检查该属性是否存在于我的模型中,如果不存在则忽略它。这应该允许我对表单帖子和从 API 返回的数据有一个一致的模型。就像是:

我查看了 ActiveModel API 文档,但似乎没有等价物。这让我觉得我应该以不同的方式做这件事。

这是正确的(Rails)方法吗?当数据来自不同来源时,如何确保我具有一致的模型属性?