嵌套路由不路由以纠正操作

时间:2014-12-05 17:29:06

标签: ruby-on-rails activerecord simple-form

餐馆是地点的父母。 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

0 个答案:

没有答案