2011-08-28 73 views
4

我有以下兩種模式如何更新與導軌形式多模型

class Office < ActiveRecord::Base 
    has_many :locations, :dependent => :destroy 
end 

class Location < ActiveRecord::Base 
    belongs_to :office 
end 

我有一個辦事處模型new.html.erb和下面的代碼在OfficeController

def create 
    @office = Office.new(params[:deal]) 
    if @office.save 
     redirect_to office_url, :notice => "Successfully created office." 
    else 
     render :action => 'new' 
    end 
    end 

如何添加字段Location模型new.html.erbOffice

我希望能夠在同一個表單中有位置的字段。

回答

3

你將不得不使用嵌套屬性來做到這一點。幸運的是,Rails使它變得非常簡單。以下是如何做到這一點:

  1. 首先,表示要辦,你給它定位領域以及通過加入這一行: accepts_nested_attributes_for :location

  2. 現在,在new.html.erb中,添加所需的字段。假設我們希望有城市和國家:

    <%= f.fields_for :location do |ff| %> 
        <%= ff.label :city %> 
        <%= ff.text_field :city %> 
    
        <%= ff.label :state %> 
        <%= ff.text_field :state %> 
    <% end %> 
    

這就是它!