- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想使用 before_save
方法将模型实例的 first_name
和 last_name
大写。我当然可以这样做:
before_save do
self.first_name = first_name.capitalize
self.last_name = last_name.capitalize
end
但我更愿意一次性改变这两个属性。有没有办法在我的模型中选择某些列并对其应用所需的方法?
最佳答案
你可以这样做
before_save :capitalize_attributes
private
def capitalize_attributes
capitalizable = ["first_name","last_name"]
self.attributes.each do |attr,val|
#based on comment either of these will work
#if you want to store nil in the DB then
self.send("#{attr}=",val.strip.capitalize) if capitalizable.include?(attr) && !val.nil?
#if you want to store a blank string in the DB then
self.send("#{attr}=",val.to_s.strip.capitalize) if capitalizable.include?(attr)
end
end
然后您只需将要大写的属性添加到capitalizable
数组即可。我使用类似的代码来 upcase
某些模型中的所有字符串,只是为了保持数据清洁一致。
关于ruby-on-rails - 在 Rails before_save 方法中大写多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26244488/
我的模型中有一个 before_save 回调,它在将 2 个字段保存到数据库之前对其进行加密。 class Account < ActiveRecord::Base before_save :e
我正在尝试在用户模型中strip变量Username的空格。 我正在使用 before_save do self.username.strip! end 但这似乎不起作用,我是否缺少某些东西? 最
好吧,这件事快把我逼疯了。我有一个看起来大致像这样的小方法: class PdfResult < ActiveRecord::Base attr_accessible :press_ready_u
我确定我只是遗漏了一些简单的东西,但过去几天我一直在为此绞尽脑汁。 我有一个预订和评论表,其中预订有很多评论。我可以创建评论,但在尝试定义离开和接收评论的用户角色时遇到错误。 这是我的模型。评论 cl
我正在运行 Ruby 2.1 和 Mongoid 5.0(没有 Rails)。 我想在 before_save 回调中跟踪嵌入字段是否已更改。 我可以使用 document.attribute_cha
我的自定义验证似乎在我的 before_save block 之前运行,这对我来说很奇怪。我知道 before_validation,但我正在尝试测试我的自定义验证器,所以 before_valida
我正在学习 Michael Hartl 的 RoR 教程,它涵盖了密码加密的基础知识。这是当前的用户模型: class User true, :length
我有一个 Organization带 iv 的模型属性(property)。如果iv没有设置,它是随机的,但它必须是唯一的。首先想到的是下面的回调。它不能用作 valid?将尝试重新验证。 class
我有两个模型,一个父模型和一个子模型(如下所述)。子模型有一个 before_save 回调来处理一些外部逻辑,如果遇到任何错误,回调会使正在保存的模型失效。 class Parent true
我想在 before_save 上添加一个钩子(Hook)。 验证发生在调用“before_save”之前,因此我将其移至 before_validation :on =>:save。 现在的问题是,
我有两个模型:折扣拥有且属于许多企业。 我想验证折扣始终至少有一项业务,以及另一个条件(例如有效?)。我尝试了以下方法: class Discount :validate_publish_statu
如果许多其他属性不为 0,我正在使用 before_save 回调方法将属性设置为 true。当我更新我的模型但未设置额外属性时调用回调。我认为这可能是因为该属性没有传递给更新方法。我该如何解决这个问
无法弄清楚。不知道为什么没有保存记录。方法被正确调用,所有字段都存在,逻辑正确。这是我的模型代码: class Mine < ActiveRecord::Base belongs_to :shop v
这是我的like.rb模型 class Like "created_at DESC" belongs_to :post belongs_to :user def increment_po
当您向 Controller 提交表单以保存在 ActiveRecord 中时,您可以通过 @foo.field = 'bar' 添加缺失的字段。我想对嵌套属性做同样的事情,但我不知道该怎么做。 我正
我有两个模型: class Game before_save :update_teacher teacher end def update_teacher teacher.
努力在父记录的 before_save 回调中修改子记录。 子记录是Photo有一个名为 main 的属性这是一个 bool 值。 父记录是Deal那has_many :photos 修改记录的表单是
与其说这是一个如何做的问题,不如说是一个为什么的问题。考虑下面的示例,我在其中尝试在保存前设置默认电子邮件。 class Organization < ActiveRecord::Base bef
我正在创建一个插件,但很难定义调用我刚刚定义的实例方法的 before_save 过滤器。这是一个快速示例: module ValidatesAndFormatsPhones def self.i
我的 ActiveRecord 模型有一个回调,如下所示: before_save :sync_to_external_apis def sync_to_external_apis
我是一名优秀的程序员,十分优秀!