Ruby on rails 在RubyonRails中保存同一对象的多个

Ruby on rails 在RubyonRails中保存同一对象的多个,ruby-on-rails,Ruby On Rails,我有一个组织数据库表,其中包含以下字段: OrganizationId、OrganizationName、OrganizationAddressId、mainadminname、mainadminaddressid 这两个地址ID是指向地址数据库表中两条记录的指针。地址数据库表包含以下字段: addressid、addressline1、addressline2、addresstowncity、addresspostcode 因此,当我创建新组织时,我希望捕获以下信息: organisation

我有一个组织数据库表,其中包含以下字段:

OrganizationId、OrganizationName、OrganizationAddressId、mainadminname、mainadminaddressid

这两个地址ID是指向地址数据库表中两条记录的指针。地址数据库表包含以下字段:

addressid、addressline1、addressline2、addresstowncity、addresspostcode

因此,当我创建新组织时,我希望捕获以下信息:

organisationname
organisationaddressline1
organisationaddressline2
organisationaddresstowncity
organisationaddresspostcode
mainadminname
mainadminaddressline1
mainadminaddressline2
mainadminaddresstowncity
mainadminaddresspostcode
当我保存这些信息时,我想创建一个组织记录和两个地址记录

我不知道如何在ROR中做到这一点

感谢您的建议

谢谢你的时间


嗅探器

我认为这有助于您:


我认为这有助于您:


外观不太标准的rails列名,因此我猜您可能正在使用传统的DB,至少:

假设您的组织模型是这样的:

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 %>
您的表单可能看起来像这样,包含不同地址的字段:

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 %>

应保存组织模型以及两个地址模型

外观不太标准的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 %>
您的表单可能看起来像这样,包含不同地址的字段:

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 %>

应保存组织模型以及两个地址模型

最终到达了那里——这个答案让我走上了正确的道路,就像这篇文章一样——特别是对我所面临的类似问题的解决方案的一点反思。感谢你为我指出了正确的方向njorden。最终到达了那里-这个答案让我走上了正确的道路,与这篇文章一样-尤其是对我所面临的类似问题的解决方案的重新思考。谢谢你给我指出了njorden的正确方向。我没有时间看这些,但是铁路司机看起来是一个很好的资源。谢谢分享!我没时间看这些,但是铁路司机看起来是一个很好的资源。谢谢分享!