_destroy没有使用Rails 4在Coocon gem中工作

时间:2015-04-23 08:27:30

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

我有同样的问题 one

但那个解决方案对我没有帮助。 以下是我的强力指南:



def request_params
   params.require(:request).permit(:name, :address, :phone, :mobile, :type,
     :filled_cartridges_attributes => [:cartridge_name,:client_id,,
				:count,:_destroy,:id],							




所以我有:_destroy和:id。之前的家伙忘记添加:id to strong params。添加id解决了他的问题。

这是我的请求模型:



has_many :filled_cartridges, inverse_of: :request, dependent: :destroy
	accepts_nested_attributes_for :filled_cartridges, :reject_if => :all_blank, allow_destroy: true




提交后这就是params的样子:



request: 
...some params....
filled_cartridges_attributes: !ruby/hash:ActionController::Parameters
    '0': !ruby/hash:ActionController::Parameters
      cartridge_name: HP LaserJet3000
      _destroy: 'false'
      id: '1'
    '2': !ruby/hash:ActionController::Parameters
     cartridge_name: new 9
     _destroy: '1'
     id: '13'




这里应该销毁第二个。 但它没有。

1 个答案:

答案 0 :(得分:0)

您应该在允许的参数上添加:_destroy和:id到指定的嵌套属性。