`
lzqustc
  • 浏览: 211110 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

嵌套表单

阅读更多

class Company < ActiveRecord::Base

  has_many  :users                    #注意这里是has_many

  has_one :newuser                #注意这里是has_one  

  accepts_nested_attributes_for :newuser

  ....................

end

 

 

通常B2B门户网站在用户注册(:controller=> :users)时,都要求填写一些公司信息,所以要使用嵌套表单,如下:

- form_for :company, :url => users_path do |f|   注意form_for :company:url => users_path 的不一致性

  %fieldset

    %p

      = f.label :name, '公司名称'

      = f.text_field :name

    %p

      = f.label :trade, '公司类型'

      = f.text_field :trade

    %p

      = f.label :webaddress, '公司网址'

      = f.text_field :webaddress

 

  %fieldset

    - f.fields_for :newuser_attributes  do |user_form|   (#关键就在这里了)

      %p

        %label{:for => 'email'} 电子邮箱

        = user_form.text_field :email

      %p

        %label{:for => 'login'} 用户名称

        = user_form.text_field :login

      %p

        %label{:for => 'password'} 用户密码

        = user_form.password_field :password        

      %p

        %label{:for => 'password_confirmation'} 重复密码

        = user_form.password_field :password_confirmation

      %p 

  %p      

f.submit "注册"  

 

 

接着就应该在User_controller下的create方法里,保存Company、User信息,如下:

def create

  @company = Company.newparams[:company] )

  @company.save

end

 

 

 

OK,我们看到上面只是非常简单的两句话,但是你会发现,执行@company.save时,除了执行insert  into  companies values (......),还会自动执行insert  into users  values (.....),从而实现一个表单的提交,同时操作两个数据库表。

神奇吧,赶快去试试^_^

 

参考资料:

 

<!--EndFragment-->

http://guides.rubyonrails.org/2_3_release_notes.html 

<!--EndFragment-->
分享到:
评论

相关推荐

    Ruby-Cocoon轻松处理容易嵌套表单

    Ruby-Cocoon是一个用于Rails应用的优秀库,它专门设计用来简化嵌套表单的处理。在Ruby on Rails框架中,处理嵌套模型关联(Nesting Model Associations)时,经常会出现复杂的用户界面需求,比如动态添加或删除子...

    使用jQuery的动态嵌套表单变得容易; 适用于formtastic,simple_form或默认表单-Ruby开发

    茧茧使处理嵌套表单变得更加容易。 嵌套表单是一种以一种形式处理嵌套模型和属性的表单。 例如,带有任务的项目或带有订单项的发票。 Cocoon是与表单生成器无关的茧Cocoon使处理嵌套表单变得更加容易。 嵌套表单是一...

    使用form-create动态生成vue自定义组件和嵌套表单组件

    在本文中,我们将深入探讨如何使用`form-create`来动态生成vue自定义组件和嵌套表单组件。 首先,`form-create`的核心在于`maker`对象,它提供了一系列的方法来创建不同类型的组件。例如,`maker.create()`可以用来...

    表格表单的嵌套.html

    比较简单的表单与表格的嵌套,只是做一个引导作用,实际意义不大,

    cocoon:使用jQuery的动态嵌套表单变得容易; 适用于表格,simple_form或默认表格

    嵌套表单是一种以一种形式处理嵌套模型和属性的表单。 例如,带有任务的项目或带有订单项的发票。 Cocoon与表单生成器无关,因此可与标准Rails, 或。 它与导轨3、4和5兼容。 该项目与无关。 先决条件 这个宝石...

    vue elementUI 表单校验的实现代码(多层嵌套)

    本文将深入探讨在Vue+Element UI环境下,如何实现多层嵌套表单的校验。 首先,我们需要理解Element UI表单校验的基本概念。在Element UI中,表单校验需要遵循一个规则,即传入的model必须是一个对象。在对象的基础...

    rails4_crud_with_angularjs:Rails4 + AngularJS 嵌套表单

    当我们需要在 rails 中创建嵌套表单时,我们使用了nested_form gem。 但是如果你使用 AngularJS 作为前端,那么你就不能使用它。 当您希望嵌套表单使用 AngularJS 时,您需要编写自己的代码。 在这个应用程序中,我...

    isomorphic-schema:同构Java表单验证库。 支持嵌套表单,跳过字段验证和多字段验证的规则。 有i18n支持

    支持嵌套表单,跳过字段验证和多字段验证的规则。 有i18n支持。 字段验证器使用对象原型机制来支持继承。 有关更多示例,请检查测试。 如果要查看基于同构模式表单定义的自动表单生成,请转到 。 该库可以很容易...

    vanilla-nested:使用Vanilla JS的Rails动态嵌套表单

    使用Vanilla JS的Rails动态嵌套表单 类似于茧,但没有jquery依赖! 安装 只需将其添加到您的gemfile gem 'vanilla_nested' # or gem 'vanilla_nested', github: 'arielj/vanilla-nested' 如果您使用的是Sprockets...

    ant-design-vue3.x的form表单爬坑.pdf

    在Ant Design Vue 3.x版本中,表单的使用与之前版本有了一些显著的变化,特别是对于嵌套表单的处理和验证方式。本文将详细解析这些变化,帮助开发者避免在升级过程中遇到的“坑”。 首先,让我们关注的是嵌套表单...

    动态表单的简单实现

    此外,可能还需要处理一些特殊情况,如嵌套表单、多选框组、文件上传等。 项目中的"WebDemo"可能包含了以下部分: 1. HTML模板:用于构建表单的基础结构。 2. CSS样式文件:定义表单的外观和布局。 3. JavaScript...

    activeform:轻松创建嵌套表单

    表单对象以更无缝的方式处理嵌套对象的创建/更新操作。 安装 将此行添加到您的Gemfile : gem 'active_form' 定义表单 考虑一个示例,您要创建/更新一个会议,该会议可以有多个演讲者,这些演讲者可以通过一个...

    vue elementUI 表单校验功能之数组多层嵌套

    然而,在处理复杂的数据结构,特别是涉及到数组和多层嵌套时,表单校验可能会变得相当棘手。本篇文章将详细介绍如何在Vue Element UI中进行数组多层嵌套的表单校验。 当数据结构包含数组,并且数组内的对象也需要...

    Ruby-Reform能够给你一个Form对象模型包含验证和嵌套设置

    同时,官方文档也是一个很好的学习资料,它详尽地介绍了如何定义Form对象、处理嵌套表单、自定义验证等各个方面。 总的来说,Ruby-Reform是Ruby开发中的一个强大工具,能够极大地改善你的表单处理体验。它提供了更...

    Ruby-SimpleForm轻松处理Rails表单

    7. **嵌套表单** 如果需要处理嵌套模型,Simple Form同样提供了很好的支持。使用`accepts_nested_attributes_for`在模型中声明,然后在表单中使用`fields_for`方法: ```ruby |address_form| %&gt; ``` 8. *...

    工单预约表单plus-3.14.3.zip

    它可能包含了更复杂的数据逻辑,如条件分支、计算字段、嵌套表单等,使得表单可以根据不同的输入自动调整显示内容或执行特定操作。超级表单还可以集成第三方服务,如支付网关,实现在线支付功能,简化整个预约流程。...

    PyPI 官网下载 | drf_nested_forms-1.1.5-py3-none-any.whl

    这个库是为了解决Django REST Framework(DRF)中处理嵌套表单的问题。描述提到资源来自PyPI官网,并且解压后即可使用,表明这是一个符合Python标准格式的whl文件,它是预编译的Python包,可以直接通过pip安装。 `...

    meteor-templates-forms-example:使用meteor和meteortemplates.forms lib构建的嵌套表单的示例

    带有示例的带有嵌套资源的表单示例,该嵌套资源使用流星React式表单和经过验证的包构建。 关于 该项目说明了如何使用template / forms包为主要资源和嵌套资源列表构建表单。 在这种情况下,主要资源是Project ,而...

    vue前端表单插件支持栅格和tab 嵌套布局,支持表格定义,适应于做动态数据模型管理

    本文将详细介绍这款支持栅格和Tab嵌套布局、表格定义的Vue表单插件,以及它如何适应动态数据模型管理场景。 首先,让我们来看看“栅格布局”这一概念。栅格布局是网页设计中的常见方式,它允许开发者通过行列来组织...

Global site tag (gtag.js) - Google Analytics