default_value_for 插件技术文档
2024-12-23 18:22:28作者:房伟宁
1. 安装指南
Rails 3.2 - 4.2 / Ruby 1.9.3 及以上版本
当前版本的 default_value_for (3.x 及以上) 兼容 Rails 3.2 及以上版本,以及 Ruby 1.9.3 及以上版本。
在 Gemfile 中添加以下内容:
gem "default_value_for", "~> 3.0"
Rails 3.0 - 3.1 / Ruby 1.9.3 及以下版本
如果你使用的是较旧版本的 Ruby 和 Rails,你需要使用之前的稳定版本 2.0.3。该版本兼容 Rails 3.0、3.1 和 3.2,以及 Ruby 1.8.7 及以上版本。但它不兼容 Rails 4。
在 Gemfile 中添加以下内容:
gem "default_value_for", "~> 2.0.3"
Rails 2
如果你使用的是 Rails 2.x 版本,你需要使用较旧的版本:
./script/plugin install git://github.com/FooBarWidget/default_value_for.git -r release-1.0.7
2. 项目的使用说明
default_value_for 插件允许你以声明式的方式为 ActiveRecord 模型定义默认值。例如:
class User < ActiveRecord::Base
default_value_for :name, "(no name)"
default_value_for :last_seen do
Time.now
end
end
u = User.new
u.name # => "(no name)"
u.last_seen # => Mon Sep 22 17:28:38 +0200 2008
注意事项
在某些情况下,默认值不会被填充到现有记录中。例如,当你从数据库中检索记录时,默认值不会被重新填充。
3. 项目API使用文档
default_value_for 方法
default_value_for 方法可以在所有 ActiveRecord 模型类中使用。
第一个参数是属性名称,第二个参数是默认值。默认值可以通过值或块的形式传递。
default_value_for :age, 20
或
default_value_for :age do
if today_is_sunday?
20
else
30
end
end
default_value_for 选项
allows_nil(默认: true) - 如果设置为 true,则允许显式传递的 nil 值。
default_value_for :age, :value => 20, :allows_nil => false
default_values 方法
default_values 方法可以一次性设置多个默认值。
default_values :age => 20,
:uuid => lambda { UuidGenerator.new.generate_uuid }
4. 项目安装方式
通过 Gemfile 安装
在 Gemfile 中添加以下内容:
gem "default_value_for", "~> 3.0"
然后运行 bundle install 进行安装。
通过插件安装
对于 Rails 2.x 版本,可以通过以下命令安装:
./script/plugin install git://github.com/FooBarWidget/default_value_for.git -r release-1.0.7
验证 Gem 的真实性
你可以通过以下步骤验证 Gem 的真实性:
- 使用 Phusion Software Signing 密钥进行验证。
- 通过 rubygems-openpgp 证书颁发机构进行验证。
详细的验证步骤可以参考相关文档。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0120- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
SenseNova-U1-8B-MoT-SFTenseNova U1 是一系列全新的原生多模态模型,它在单一架构内实现了多模态理解、推理与生成的统一。 这标志着多模态AI领域的根本性范式转变:从模态集成迈向真正的模态统一。SenseNova U1模型不再依赖适配器进行模态间转换,而是以原生方式在语言和视觉之间进行思考与行动。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
项目优选
收起
暂无描述
Dockerfile
717
4.61 K
Ascend Extension for PyTorch
Python
591
732
deepin linux kernel
C
29
16
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
981
970
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
805
120
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
420
369
Oohos_react_native
React Native鸿蒙化仓库
C++
342
390
昇腾LLM分布式训练框架
Python
156
183
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
143
226
暂无简介
Dart
962
240