def add_object_link(name, form, object, partial, where) html = render(:partial => partial, :locals => {:form => form}, :object => object) link_to_function name, %{ var new_object_id = new Date().getTime() ; var html = jQuery(#{html.to_json}.replace(/index_to_replace_with_js/g, new_object_id)).hide(); html.appendTo(jQuery("#{where}")).slideDown('slow'); } end
class Rubric < ActiveRecord::Base has_many :anchors accepts_nested_attributes_for :anchors, :allow_destroy => true end
class Anchor < ActiveRecord::Base belongs_to :rubric end
- form_for @rubric do |f| %h3 != add_object_link('<img src="/images/icons/add.png" />', f, Anchor.new, "anchor", "#anchors") %ul#anchors - @rubric.anchors.each do |anchor| != render :partial => "anchor", :locals => {:form => f, :anchor => anchor} != f.submit(" ")
- raise ArgumentError unless defined?(form) - raise ArgumentError unless defined?(anchor) %li.anchor - form.fields_for :anchors, anchor, :child_index => (anchor.new_record? ? "index_to_replace_with_js" : nil) do |anchor_form| != anchor_form.text_field :title - if anchor_form.object.new_record? %a{:href => "#", :onclick => "jQuery(this).parent('.anchor').remove(); return false;"} %img{:src => "/images/icons/delete.png"} - else != anchor_form.check_box '_destroy' != anchor_form.label '_destroy', '?'
Source: https://habr.com/ru/post/116262/
All Articles