Jef*_*eff 3 ruby-on-rails ruby-on-rails-4
我似乎无法使用accepts_nested_attributes_for
命令删除项目,但我已根据本教程和相关的git repo完成此操作.我的模特是......
class Job < ActiveRecord::Base
has_many :specialties, :inverse_of => :job
accepts_nested_attributes_for :specialties, allow_destroy: true, :reject_if => :all_blank
end
class Specialty < ActiveRecord::Base
belongs_to :job, :inverse_of => :specialties
end
Run Code Online (Sandbox Code Playgroud)
以我的Job
形式,我有......
<%= f.check_box :_destroy %>
<%= f.label :_destroy, "Remove Specialty" %>
Run Code Online (Sandbox Code Playgroud)
当我单击复选框删除几个时specialties
,没有任何反应.我检查了服务器输出并收到:
在2013-07-16 16:15:16 -0400开始为127.0.0.1启动PATCH"/ jobs/1"
由JobsController处理#update为HTML
参数:{"utf8"=>"✓","authenticity_token"=>"8VxYXujcKXpLEm8 + 7B43SLU6X3fH00kIOmFK + nvaBKs =","job"=> {"name"=>"Cook","description"=>"制作食物.","specialties_attributes"=> {"2"=> {"name"=>"","description"=>"","_ destroy"=>"1","id"=>"3"}, "3"=> {"name"=>"","description"=>"","_ destroy"=>"1","id"=>"4"}}},"commit"=>"更新工作","id"=>"1"}
作业加载(0.1ms)选择"作业".*FROM"作业"WHERE"作业"."id"=?限制1 [["id","1"]]
未允许的参数:_destroy
未允许的参数:_destroy
未允许的参数:_destroy
未允许的参数:_destroy
我错过了什么?我已经完成了教程和回购了很多次,我看不出我走了哪里.
Dam*_*che 14
这是因为strong_parameters.你现在必须要permit
钥匙.在你的行动中:
params.permit(:_destroy)
SSR*_*SSR 12
我喜欢@Damien Roche的答案,但它只是为了不与任何人混淆.按照这个
In job_controller.rb
private
def job_params
params.require(:job).permit(:id, :description, :specialty_fields_attributes => [:id, :job_id, :avatar, :_destroy])
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3940 次 |
最近记录: |