从子表单创建模型实例

时间:2013-02-06 16:26:06

标签: ruby-on-rails ruby

我的用户模型属于:city:state和:country。

城市模型属于州。

状态模型属于国家。

当用户注册时,他们应该能够选择一个位置(城市州和国家/地区),或者如果它不在数据库中,则添加一个位置。问题是,在添加城市和州时,我希望能够将它们分别与州或国家相关联。到目前为止我所拥有的是

在我的用户模型中

belongs_to  :state 
belongs_to  :city
belongs_to  :country     

def city_name
  city.try(:name)
end

def city_name=(name)
  self.city = City.find_or_create_by_name(name.titleize) if name.present?
end

def country_name
  country.try(:name)
end

def country_name=(name)
  self.country = Country.find_or_create_by_name(name.titleize) if name.present?
end

def state_name
  state.try(:name)
end

def state_name=(name)
  self.state = State.find_or_create_by_name(name.titleize) if name.present?
end

以我的用户/新表格

<div class="field">
  <%= f.label :your_city %><br />
  <%= f.text_field :city_name, data: {autocomplete_source: cities_path} %>
  <br /> or <%= link_to "add New Location" ,"javascript:toggleDiv('hideme');"%>
</div>
<div id="log"></div>

<div id="hideme">
  <div class="field">
    <%= f.label :country_name %><br />
    <%= f.text_field :country_name %>
  </div>

  <div class="field">
    <%= f.label :state_name %><br />
    <%= f.text_field :state_name %>
  </div>
</div>

通过这种方式我创建并将用户与城市州和国家相关联 但是这个城市的国家和国家是浮动的,与他们各自的州和国家的父母没有联系。有没有办法在创建用户时关联这些模型?我应该放弃这种做法吗?

0 个答案:

没有答案