Rails 4,茧宝石摧毁创建的对象

时间:2014-03-10 07:17:52

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2 cocoon-gem

我的应用程序存在很大问题。这有点复杂,所以我会尝试深入解释。在我的应用程序中,我有“Car”模型:

class Car < ActiveRecord::Base

  has_many :prices,  dependent: :destroy

  accepts_nested_attributes_for :prices, allow_destroy: true

end

和“价格”:

class Price < ActiveRecord::Base
  belongs_to :car
end

我使用邪恶的宝石有一个向导形式。我还使用cocoon gem轻松创建一些嵌套对象。 我的“付款步骤html”:

= simple_form_for [:partners, @car], url: wizard_path do |f|
  = f.simple_fields_for :prices do |price|
    = render 'price_fields', f: price
  #links
    = link_to_add_association 'add price', f, :prices
  = link_to t('cars.back'), edit_partners_car_path(@car)
  = f.submit t('cars.next'), class: 'btn btn-primary'

和price_fields:

.nested-fields
  %table.table.table-striped.table-bordered
    %thead
      %th
        = f.input :from_days
      %th  
        = f.input :to_days
      %th
        = f.input :netto_price
    = link_to_remove_association "X", f

问题是,当我创建一些价格并进入下一步时,价格会保存到数据库中,一切都很好。但当我回到这一步并点击我的时候:

= link_to_remove_association "X", f

它只隐藏此对象但不从数据库中删除它。这对我来说是个大问题。我找不到问题。如果可以,请帮忙。

1 个答案:

答案 0 :(得分:0)

我将“_price_fields”更改为:

.nested-fields
  %table.table.table-striped.table-bordered
    %thead
      %th
        = f.input :from_days
      %th  
        = f.input :to_days
      %th
        = f.input :netto_price
  = link_to_remove_association "X", f

我的link_to_remove_association这个级别太深了...... 现在像魅力一样工作