1
我試圖使用方法:_destroy方法在嵌套形式,但它只是不工作導軌 - :_destroy方法不工作
有兩種模式:
class Setting < ActiveRecord::Base
attr_accessible :category, :name, :setting_items_attributes, :_destroy
attr_accessor :_destroy
has_many :setting_items, :dependent => :destroy
accepts_nested_attributes_for :setting_items, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
end
class SettingItem < ActiveRecord::Base
attr_accessible :setting_id, :value
belongs_to :setting
end
在我創建控制器一個實例:
def edit
@setting = Setting.find(params[:id])
@setting.setting_items.build
end
而且形式如下:
<%= form_for(@setting) do |f| %>
<div class="field">
<%= f.label :category %>
<%= f.text_field :category %>
</div>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<hr>
<h3>Params:</h3>
<%= f.fields_for :setting_items do |s| %>
<span>
<div class="fields">
<%= s.text_field :value %>
<%= s.hidden_field :_destroy %>
<%= link_to_function "delete", "remove_fields(this)"%>
</div>
<% end %>
<div class="actions">
<%= f.submit "Update", :class => "btn btn-primary"%>
</div>
<% end %>
而且我用的功能是在這裏:
function remove_fields(link){
$(link).prev("input[type=hidden]").val("1");
$(link).parent().fadeOut("slow");
}
所以setting_items形式僅僅是不工作的,它顯示了更新成功,但沒有實際添加或刪除。
您可以添加正在params哈希表表單提交時通過? –
嘗試使用$(link).prev(「input [type = hidden]」)。attr(「value」,「1」); – Milind