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

ruby-on-rails-3 - 如何覆盖 ActiveRecord CRUD 操作?

是否有可能我使用“rails generate model...”创建我的模型,它创建了所有的 CRUD 内容,包括用于创建、更新和删除的视图,然后我覆盖 rails CRUD 方法来做其他事情,例如将它们全部打印出来管他呢?

我需要将我的模型编码为 JSON 并将其发送到将其保存到数据库中的中间件。

一个小例子真的会有所帮助......非常感谢......

请帮忙!

0 投票
2 回答
2341 浏览

ruby-on-rails - ActiveModel:关联模型失败时禁用失败验证

默认情况下, Rails3 是否总是validates_associated针对所有模型运​​行?

在这样的简单设置中

带有附加评论的新帖子失败,因为评论无效。

如果validates_associated总是运行,那么为什么会出现(改变:message?)以及如何将其关闭?我试过validates_associated :comments, :unless => proc{true}了,但它什么也没做。

我只是想要一个模型来保存,如果每个关联记录都有效,则尝试保存每个关联记录,但如果关联模型无效,则不会失败。


编辑:这更接近我想要做的事情

还有更多模型遵循与 Game 相同的结构,例如 Book、Movie。如果WikipediaParagraph.paragraph == nil那么游戏验证失败。我希望游戏保存而 WikipediaParagraph 没有保存,但has_one :wikipedia_paragraph, :validate => false两者都保存,没有它既不保存。

我希望有比使用更优雅的东西

对于每个人has_one/many,但现在我意识到这可能是不可能的。

0 投票
2 回答
4142 浏览

ruby-on-rails - ActiveModel - View - Rails 中的控制器而不是 ActiveRecord?

我正在尝试对我的模型使用 ActiveModel 而不是 ActiveRecord,因为我不希望我的模型与数据库有任何关系。

下面是我的模型:

这是我的控制器:

而我的观点是:

但是当我在浏览器中加载这个视图时,我得到了一个异常:

谁能帮我解决这个问题?

提前谢谢了!

0 投票
1 回答
466 浏览

ruby-on-rails-3 - Rails,创建回调

我想在对对象进行投票后调用ActiveModel 回调,问题是我使用的 gem ( voteable_mongo ) 使模型可投票并没有像我的应用程序中的投票模型或回调那样提供,所以如何我可以为它创建一个回调吗?

很明显我做的那个投票动作,但是我使用的 gem 有这个方法,你将如何正确扩展这个方法来触发回调?

0 投票
1 回答
332 浏览

ruby-on-rails - Rails:将模型(未绑定到活动记录)作为 xml 返回

我有一个绑定到活动记录的模型类。

模型充当处理状态持有者,最终将返回给调用方法。

由于这是作为活动资源方法调用的,因此需要作为 xml 返回(序列化)。这是我的操作方法:

不过,这似乎没有返回有效的 xml。

如果我尝试输出@process_status以下内容

这就是我得到的:

对象是#<ProcessingStatus:0x00000005e98860>

请告诉我我错过了什么。

编辑#1,

根据下面的评论,我修改了我的代码以包含序列化库。

我越来越近了:) 现在为 .xml 请求获取如下输出。但是我分配的值没有反映。

但是当我发出 json 请求时,它看起来是正确的!

0 投票
7 回答
33364 浏览

ruby-on-rails - ActiveModel::MissingAttributeError 在部署后发生,然后在一段时间后消失

我有一个 Rails 3.0.9 应用程序,一旦部署,就会遇到一堆 ActiveModel::MissingAttributeErrors,这些错误会导致 500 秒。这些错误是随机发生的,有时会加载页面,有时则不会,但属性都是数据库中现有的属性,应该可以找到。

奇怪的是,过了一会儿,错误就消失了。突然间,它们不再引起问题。

我一直在寻找解决这个问题的方法,但是这个错误主要发生在有人已经完成Model.all(:select => 'column_x,column_y')并正在调用column_z或者他们正在使用 cache_money 时。我没有做这两件事。

任何人都可以帮忙吗?

0 投票
1 回答
490 浏览

ruby-on-rails - 默认 ActiveRecord/ActiveModel ::错误是匿名的

默认 ActiveModel::Errors 很好,但我正在解决问题,消息是匿名的。例如有should look like an email address.属于email字段的消息,但我想知道这个错误消息是format类型。另一个消息doesn't match confirmationconfirmation类型。

有没有更好的错误的宝石,或者你们中的任何人都知道猴子补丁吗?

谢谢

0 投票
0 回答
205 浏览

ruby-on-rails-3 - 覆盖 rails 默认验证器

我正在开发一个插件。在这个插件中,我用一些额外的行为扩展了 activerecord。由于我的更改,Rails 中的 'validates_uniqueness_of'-validator 应该进行一些更改,以了解我的更改并按预期运行(我真正需要做的唯一事情就是将范围应用于此验证器)。

我的问题是
如何在我的插件中重写/更改 AR 的默认 'validates_uniqueness_of'-validator?

谢谢你的时间!
欧文

0 投票
1 回答
264 浏览

ruby-on-rails - 使用 ActiveModel 实现“联系我们”表单时遇到问题

我正在使用 Ruby on Rails 3.0.9,并且我正在尝试自己实现“联系我们”表单。所以...

...在我的模型文件中,我有:

...在我的视图文件中,我有:

...在我的路由器文件中,我有:

...在我的控制器文件中,我有:

使用上面的代码,当我提交带有至少一个空白字段的表单(我这样做是为了使其不通过验证)并且重新加载表单时,我不会自动填充这些字段。也就是说,在重新加载表单后(这发生在按下提交按钮之后)字段值全部设置为空白值。

问题是什么?我用错了ActiveModel吗?

0 投票
1 回答
228 浏览

ruby-on-rails - 在使用 DelayedJob 时遇到带有类属性的 ActiveModel

我正在使用 Ruby on Rails 3.0.9 和 DelayedJob 2.1,并且我正在尝试使用 ActiveModel 功能实现自己的“联系我们”表单。所以...

...在我的模型文件中,我有:

...在我的视图文件中,我有:

...在我的路由器文件中,我有:

...在我的控制器文件中,我有:

一切正常,除非我使用与电子邮件模板中的类属性相关::Pages::Mailer.delay.contact_us(@contact_us)的方法的代码full_namefull_name(但是,它在电子邮件模板中我调用该full_name方法时有效)。也就是说,当我将以下电子邮件模板与 Dalayed Job 一起使用时,我得到一个undefined method 'full_name\' for #<ContactUs:0x000001041638c0> \n/RAILS_ROOT/app/views/pages/mailer/contact_us.html.erb

当我使用上面没有Dalayed Job 的电子邮件模板(即使用::Pages::Mailer.contact_us(@contact_us).deliver代码)时,它可以工作。

相关邮件代码为:

但是,如果我发送一封::Pages::Mailer.delay.contact_us(@contact_us)包含 a@message_content.inspect而不是的简单电子邮件(使用 ),@message_content.full_name我会在收到电子邮件时得到以下输出(注意full_name实例变量存在!):

Dalayed Job 有什么问题,我该如何解决?


我真的不明白为什么会发生这种情况,因为我有full_name类似的工作,例如,email所有工作的属性。我还尝试重新启动我的 Apache2 服务器。