餐馆是地点的父母。 1餐厅可以有很多地方。
为餐厅添加新位置时会出现问题。表单提交后,它会添加一个新餐厅,而不是该餐厅的新位置。
路线
resources :restaurants do
resources :locations
end
位置控制器 - 注意:我非常确定@restaurant.locations.build
不应该在这里,但删除后,删除了添加新位置的表单。
def new
@location = Location.new
@restaurant = Restaurant.new
@restaurant.locations.build
end
餐厅控制器
def new
@restaurant = Restaurant.new
@restaurant.locations.build
end
餐厅模型
has_many :meals
has_many :locations
accepts_nested_attributes_for :locations
地点模型
belongs_to :restaurant
validates :restaurant_id, presence: true
地点形式
<%= simple_form_for @restaurant do |f| %>
<%= f.simple_fields_for :locations do |l| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= l.input :street_address %>
<%= l.input :zipcode %>
<%= l.input :city %>
<%= l.input :area %>
<%= l.input :restaurant_id %>
</div>
<div class="form-actions">
<% end %>
</div>
<%= f.button :submit %>
<% end %>
为什么不在餐厅添加位置?另请注意,我使用的是simpleform