_destroy在使用Rails 4的Coocon gem中无效

yer*_*syl 7 ruby ruby-on-rails ruby-on-rails-4 cocoon-gem

我有同样的问题,因为这 一个

但那个解决方案对我没有帮助.这是我强大的参数:

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

所以我有:_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
Run Code Online (Sandbox Code Playgroud)

这就是提交后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'
Run Code Online (Sandbox Code Playgroud)

这里应该销毁第二个.但事实并非如此.

Ham*_*dan 0

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