我们发布了 Ruby on Rails 版本 2.3.3。此版本修复了许多错误,并加入了一些新功能。
touch
是一种便捷方法,用于仅更新记录的时间戳,不执行其他操作。此方法提取自模型在更改时“触碰”其他模型的应用,例如,在保存并销毁后,注释会更新父级的 replies_changed_at 时间戳。对整个 has_many 关联的时间戳进行设置,可以使用用于片段缓存的键,该键涵盖对父对象及其所有子对象的更改。此模式封装为 belongs_to :parent, :touch => :replies_changed_at
。当子级更改时,会触碰 parent.replies_changed_at
。 :touch => true
的默认值为 :touch => :updated_at
。belongs_to
中的 :primary_key
选项,用于更广泛地支持旧架构以及使用单独 UUID 主键的架构: belongs_to :employee, :primary_key => 'SSN', :foreign_key => 'EMPID'
变更集ActiveSupport::JSON.backend = 'JSONGem'
。to_json
,因此很难对其进行安全覆盖。大多数自定义 to_json
如下所示
def to_json(*encoder_specific_args)
{ :some => "json representation" }.to_json(*encoder_specific_args)
end
因此,我们将面向用户 API DRY 化为更自然的
def as_json(options = {})
{ :some => "json representation" }
end
没有丑陋的内部状态,这些状态通过对 to_json
进行重载而暴露,作为面向公众的 API 和内部生成器 API。Rails 3 显式拆分 API,因此,立即做好准备,从 to_json
切换至 as_json
。