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.new( params[: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-->
分享到:
相关推荐
Cocoon - 轻松处理容易嵌套表单
茧茧使处理嵌套表单变得更加容易。 嵌套表单是一种以一种形式处理嵌套模型和属性的表单。 例如,带有任务的项目或带有订单项的发票。 Cocoon是与表单生成器无关的茧Cocoon使处理嵌套表单变得更加容易。 嵌套表单是一...
主要介绍了使用form-create动态生成vue自定义组件和嵌套表单组件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
比较简单的表单与表格的嵌套,只是做一个引导作用,实际意义不大,
嵌套表单是一种以一种形式处理嵌套模型和属性的表单。 例如,带有任务的项目或带有订单项的发票。 Cocoon与表单生成器无关,因此可与标准Rails, 或。 它与导轨3、4和5兼容。 该项目与无关。 先决条件 这个宝石...
当我们需要在 rails 中创建嵌套表单时,我们使用了nested_form gem。 但是如果你使用 AngularJS 作为前端,那么你就不能使用它。 当您希望嵌套表单使用 AngularJS 时,您需要编写自己的代码。 在这个应用程序中,我...
支持嵌套表单,跳过字段验证和多字段验证的规则。 有i18n支持。 字段验证器使用对象原型机制来支持继承。 有关更多示例,请检查测试。 如果要查看基于同构模式表单定义的自动表单生成,请转到 。 该库可以很容易...
使用Vanilla JS的Rails动态嵌套表单 类似于茧,但没有jquery依赖! 安装 只需将其添加到您的gemfile gem 'vanilla_nested' # or gem 'vanilla_nested', github: 'arielj/vanilla-nested' 如果您使用的是Sprockets...
表单对象以更无缝的方式处理嵌套对象的创建/更新操作。 安装 将此行添加到您的Gemfile : gem 'active_form' 定义表单 考虑一个示例,您要创建/更新一个会议,该会议可以有多个演讲者,这些演讲者可以通过一个...
主要介绍了vue elementUI 表单校验的实现代码(多层嵌套),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在使用vue element-ui form表单渲染的时候,会遇到这样的数据结构: { "title":''123455, "email":'123456@qq.com', "list": [ { "id": "quis consequat culpa ut pariatur", "name": "et quis irure dolore ...
带有示例的带有嵌套资源的表单示例,该嵌套资源使用流星React式表单和经过验证的包构建。 关于 该项目说明了如何使用template / forms包为主要资源和嵌套资源列表构建表单。 在这种情况下,主要资源是Project ,而...
AngularNestedForms 该项目是使用版本11.2.6生成的。 开发服务器 为开发服务器运行ng serve 。... 如果您更改任何源文件,该应用程序将自动重新加载。 代码脚手架 运行ng generate component component-name生成一个新...
jQuery弹出可拖动层
嵌套表单字段 这个Rails gem帮助创建具有嵌套has_many关联的模型的表单。 它使用jQuery动态添加和删除嵌套关联。 适用于任意深度嵌套的关联(经过4个级别的测试)。 可与诸如类的表单构建器。 需要Ruby 1.9+和Rails...
支持栅格和tab 嵌套布局,支持表格定义,适应于做动态数据模型管理。基于formmaking开源代码增加响应的功能,该插件仅供学习交流。
概述在本实验中,您将练习在Sinatra中使用嵌套表单。指示注意:您不需要数据库,因为我们只需要跟踪表单输入足够长的时间就可以显示它,而不保留它。 我们不希望海盗在下次访问他们的URL时出现,但是如果他们存在,...
Sinatra嵌套表单实验室:超级英雄! 概述 在本实验中,您将练习在Sinatra中构建嵌套表单以创建超级英雄团队。 不需要数据库,但是在成功完成以下说明后,可以随时添加持久性。 指示 制作表格 在/创建一个响应GET请求...
56在其他表单中嵌套表单157 将子表单作为可重用组件157 57重复子表单158 验证重复输入159 58处理传统的HTML表单提交161 直接向服务器提交表单161 处理表单提交事件161 使用ngSubmit处理表单提交162 使用...