`
liuwei1981
  • 浏览: 769189 次
  • 性别: Icon_minigender_1
  • 来自: 太原
博客专栏
F8258633-f7e0-30b8-bd3a-a0836a5f4de5
Java编程Step-by...
浏览量:160466
社区版块
存档分类
最新评论

请您先登录,才能继续操作

rails保存模型对象的问题

阅读更多

写了这样一个例子,有两个模型类

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表中了,这样怎么处理啊?

分享到:
评论

相关推荐

    rails本地安装包完整版

    7. **activerecord-2.1.0.gem**:ActiveRecord是Rails中的ORM(对象关系映射)库,负责将数据库表映射为Ruby类,使得开发者可以通过面向对象的方式来操作数据库,而无需编写SQL语句。 这个本地安装包特别适合网络...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    - **定义**:验证是在保存数据之前对模型进行检查的过程,确保数据符合预期的格式和约束条件。 - **类型**:Rails提供了多种内置的验证类型,如`presence`、`uniqueness`、`format`等。 #### 三、关联 - **定义**...

    Ruby on Rails入门经典代码

    - Validations:在保存到数据库前验证模型数据的有效性。 5. **Rails测试**: - Test-Driven Development (TDD):先写测试,再编写满足测试的代码。 - RSpec:一种流行的Rails测试框架,用于行为驱动开发。 - ...

    railsAPI

    同时,模型中的validations可以帮助确保数据在被保存到数据库之前满足一定的条件。 测试是Rails开发流程的重要部分。Rails集成了测试框架如RSpec和MiniTest,允许开发者编写单元测试、集成测试和功能测试,确保代码...

    Ruby on Rails中文指南

    5. **活性验证(ActiveRecord Validations)**:模型中的活性验证确保在保存数据到数据库之前,数据的有效性和完整性。 6. **辅助方法(Helper Methods)**:辅助方法是为了保持视图整洁而创建的函数,它们可以提供...

    Ruby On Rails中文教材(PDF)

    本中文教材《Ruby On Rails》可能是针对初学者和有一定编程基础的开发者设计的,通过PDF格式提供,便于读者在线阅读或离线保存。PDF文档通常包含详细的教程、实例代码和可能的练习题,旨在帮助学习者全面了解和掌握...

    Ruby on Rails入门经典-例子

    Rails提供了许多内置的便利功能,如自动路由、数据库迁移、测试支持以及强大的ActiveRecord对象关系映射(ORM)系统。 1. **主动记录(ActiveRecord)**:是Rails的核心组件之一,它将数据库操作与Ruby类绑定,使得...

    RailsGuides中那个blog程序源码

    **数据库和ActiveRecord** - Rails使用ActiveRecord作为ORM(对象关系映射),使得Ruby对象可以直接操作数据库。`db/schema.rb` 文件描述了数据库的结构,而`db/migrate`目录下的迁移文件用于追踪数据库结构的变化。...

    Agile Web Development with Rails for Rails 3.2

    - **面向对象编程在Rails中的应用** - **数据库交互** - **RESTful架构** - **测试驱动开发(TDD)与行为驱动开发(BDD)** - **部署与运维** #### 详细知识点解析 ##### Rails 3.2概述 Rails 3.2是Ruby on Rails框架...

    Rails 3 in Action

    - **数据库设计**:选择合适的数据库模型和支持的数据结构。 - **前端与后端开发**:实现用户界面和服务器端逻辑。 - **集成测试**:确保各个部分按预期工作。 - **性能优化**:提升应用的响应速度和用户体验。 - **...

    敏捷Rails中文教程

    - **迭代式开发**:Rails的设计鼓励开发者采用迭代的方式进行开发,每一轮迭代都可以看到实际的效果,有助于及时发现并解决问题。 #### 三、Rails的组成部分 - **模型(Model)**:代表应用程序的数据逻辑,与数据库...

    rails 15 分钟博客

    Rails是Ruby on Rails的简称,它是一个开源的Web应用程序框架,使用Ruby编程语言编写,遵循MVC(模型-视图-控制器)架构模式。"Rails 15分钟博客"是一份教程,旨在引导初学者在15分钟内快速搭建一个基本的博客系统,...

    rails 文件上传

    - **上传与保存**: 用户提交表单后,ActiveStorage会自动处理上传和存储,例如: ```ruby @user.avatar.attach(params[:user][:image]) ``` 5. **CarrierWave**: 如果你的Rails版本较低,或者需要更灵活的文件...

    Agile Web Development with Rails

    - **Model**:负责处理应用程序数据逻辑,保存和检索模型数据。 - **View**:负责展示数据,即用户界面部分。 - **Controller**:负责控制应用程序的流程,接收请求并将数据传递给视图。 采用MVC模式可以将业务逻辑...

    bhl_rails_solr-源码.rar

    3. **app/models/solr_document.rb**:定义了Solr文档对象,用于映射Rails模型到Solr索引。 4. **config目录**:配置文件,如solr.yml,用于配置Solr服务器的连接信息。 5. **initializers/solr.rb**:初始化脚本,...

    ruby on rails 实例代码

    首先,Rails使用ActiveRecord作为其ORM(对象关系映射)层,使得开发者可以以面向对象的方式与数据库交互。ActiveRecord将数据库表映射为Ruby类,数据库记录映射为类的实例。例如,如果你有一个名为`User`的模型,它...

    rails-2.1.0-gem包

    观察器是对象,可以监听模型事件,如创建、更新和删除,从而实现数据验证或触发其他业务逻辑。这有助于保持模型代码的整洁,提高代码可维护性。 Rails 2.1.0还引入了"部分渲染"(Partial Rendering)的改进,允许...

Global site tag (gtag.js) - Google Analytics