写了这样一个例子,有两个模型类
1.member
class Member < ActiveRecord::Base
has_one :baby
validates_presence_of :name,:email,:password,
validates_uniqueness_of :name,:email
2.baby
class Baby < ActiveRecord::Base
belongs_to :member
validates_presence_of :name,:nickname,:sex
页面是同时提交member和baby的信息,
def enroll
@member = Member.new(params[:member])
@baby = Baby.new(params[:baby])
@baby.member = @member
if @member.save
# 注册成功,显示注册信息
else
#注册失败,返回注册页面
end
原本的想法是,member在保存的时候,检查自己的属性值是否符合要求,同时要保存与之关联的baby对象,检查属性值是否符合要求,但如果member检查没通过正常,如果是baby的信息不符合要求,则member对象保存,baby的信息没有保存,也没有提示信息,如果改成if member.save && baby.save,则在member通过检查,baby未通过检查,member对象进行了保存,然后返回了注册页面,在提交后,仍要保存member对象,则保存不成功,因为已经有相同的name值存在在member表中了,这样怎么处理啊?
分享到:
- 2008-01-10 09:37
- 浏览 1319
- 评论(0)
- 论坛回复 / 浏览 (0 / 1691)
- 查看更多
相关推荐
7. **activerecord-2.1.0.gem**:ActiveRecord是Rails中的ORM(对象关系映射)库,负责将数据库表映射为Ruby类,使得开发者可以通过面向对象的方式来操作数据库,而无需编写SQL语句。 这个本地安装包特别适合网络...
- **定义**:验证是在保存数据之前对模型进行检查的过程,确保数据符合预期的格式和约束条件。 - **类型**:Rails提供了多种内置的验证类型,如`presence`、`uniqueness`、`format`等。 #### 三、关联 - **定义**...
- Validations:在保存到数据库前验证模型数据的有效性。 5. **Rails测试**: - Test-Driven Development (TDD):先写测试,再编写满足测试的代码。 - RSpec:一种流行的Rails测试框架,用于行为驱动开发。 - ...
同时,模型中的validations可以帮助确保数据在被保存到数据库之前满足一定的条件。 测试是Rails开发流程的重要部分。Rails集成了测试框架如RSpec和MiniTest,允许开发者编写单元测试、集成测试和功能测试,确保代码...
5. **活性验证(ActiveRecord Validations)**:模型中的活性验证确保在保存数据到数据库之前,数据的有效性和完整性。 6. **辅助方法(Helper Methods)**:辅助方法是为了保持视图整洁而创建的函数,它们可以提供...
本中文教材《Ruby On Rails》可能是针对初学者和有一定编程基础的开发者设计的,通过PDF格式提供,便于读者在线阅读或离线保存。PDF文档通常包含详细的教程、实例代码和可能的练习题,旨在帮助学习者全面了解和掌握...
- **创建对象并保存**:使用 `new` 方法创建一个新的模型实例,设置其属性,然后调用 `save` 方法保存到数据库。 - 示例: ```ruby t = Tweet.new t.status = "I t.zombie = "Jim" t.save ``` - **使用哈希...
Rails提供了许多内置的便利功能,如自动路由、数据库迁移、测试支持以及强大的ActiveRecord对象关系映射(ORM)系统。 1. **主动记录(ActiveRecord)**:是Rails的核心组件之一,它将数据库操作与Ruby类绑定,使得...
**数据库和ActiveRecord** - Rails使用ActiveRecord作为ORM(对象关系映射),使得Ruby对象可以直接操作数据库。`db/schema.rb` 文件描述了数据库的结构,而`db/migrate`目录下的迁移文件用于追踪数据库结构的变化。...
- **面向对象编程在Rails中的应用** - **数据库交互** - **RESTful架构** - **测试驱动开发(TDD)与行为驱动开发(BDD)** - **部署与运维** #### 详细知识点解析 ##### Rails 3.2概述 Rails 3.2是Ruby on Rails框架...
- **数据库设计**:选择合适的数据库模型和支持的数据结构。 - **前端与后端开发**:实现用户界面和服务器端逻辑。 - **集成测试**:确保各个部分按预期工作。 - **性能优化**:提升应用的响应速度和用户体验。 - **...
- **迭代式开发**:Rails的设计鼓励开发者采用迭代的方式进行开发,每一轮迭代都可以看到实际的效果,有助于及时发现并解决问题。 #### 三、Rails的组成部分 - **模型(Model)**:代表应用程序的数据逻辑,与数据库...
Rails是Ruby on Rails的简称,它是一个开源的Web应用程序框架,使用Ruby编程语言编写,遵循MVC(模型-视图-控制器)架构模式。"Rails 15分钟博客"是一份教程,旨在引导初学者在15分钟内快速搭建一个基本的博客系统,...
- **上传与保存**: 用户提交表单后,ActiveStorage会自动处理上传和存储,例如: ```ruby @user.avatar.attach(params[:user][:image]) ``` 5. **CarrierWave**: 如果你的Rails版本较低,或者需要更灵活的文件...
- **Model**:负责处理应用程序数据逻辑,保存和检索模型数据。 - **View**:负责展示数据,即用户界面部分。 - **Controller**:负责控制应用程序的流程,接收请求并将数据传递给视图。 采用MVC模式可以将业务逻辑...
3. **app/models/solr_document.rb**:定义了Solr文档对象,用于映射Rails模型到Solr索引。 4. **config目录**:配置文件,如solr.yml,用于配置Solr服务器的连接信息。 5. **initializers/solr.rb**:初始化脚本,...
首先,Rails使用ActiveRecord作为其ORM(对象关系映射)层,使得开发者可以以面向对象的方式与数据库交互。ActiveRecord将数据库表映射为Ruby类,数据库记录映射为类的实例。例如,如果你有一个名为`User`的模型,它...
观察器是对象,可以监听模型事件,如创建、更新和删除,从而实现数据验证或触发其他业务逻辑。这有助于保持模型代码的整洁,提高代码可维护性。 Rails 2.1.0还引入了"部分渲染"(Partial Rendering)的改进,允许...