我有一个组织数据库表,其中包含以下字段:
organisationid,organisationname,organisationaddressid,mainadminname,mainadminaddressid。
两个地址id是指向地址数据库表中两条记录的指针。地址数据库表包含以下字段:
addressid,addressline1,addressline2,addresstowncity,addresspostcode。
因此,当我创建新组织时,我想捕获以下信息:
organisationname
organisationaddressline1
organisationaddressline2
organisationaddresstowncity
organisationaddresspostcode
mainadminname
mainadminaddressline1
mainadminaddressline2
mainadminaddresstowncity
mainadminaddresspostcode
当我保存这些信息时,我想创建1个组织记录和两个地址记录。
我对如何在ROR中做到这一点感到茫然!
感谢任何建议。
感谢您的时间
嗅探
答案 0 :(得分:2)
答案 1 :(得分:2)
看起来不太标准的rails列名,所以我猜你可能正在使用遗留数据库,无论如何:
假设您的组织模型是这样的:
belongs_to :organization_address, :class_name => 'Address', :foreign_key => 'organisationaddressid'
belongs_to :main_admin_address, :class_name => 'Address', :foreign_key => 'mainadminaddressid'
# See http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html
# Make the organization accept nested attributes for the addresses
accepts_nested_attributes_for :organization_address, :main_admin_address
您的表单可能看起来像带有不同地址的字段_
<% form_for Organization.new do |f| %>
<%= f.text_field :name %><br />
<% fields_for :organization_address do |oaf| %>
<%= oaf.text_field :addressline1 %><br />
<%= oaf.text_field :addressline2 %><br />
...
<% end %>
<%= f.text_field :name %><br />
<% fields_for :main_admin_address do |maaf| %>
<%= maaf.text_field :addressline1 %><br />
<%= maaf.text_field :addressline2 %><br />
...
<% end %>
<% end %>
之后,在你的控制器中
@organization = Organization.new(params[:organization])
@organization.save
应该保存组织模型以及两个地址模型。