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