【问题标题】:Railscasts196, Rails 4, simple_form, JS, hamlRailscasts196,Rails 4,simple_form,JS,haml
【发布时间】:2016-01-23 14:57:40
【问题描述】:

就像在 Railscasts196 中一样,我将 Attendances 嵌套在 Events 中,Events 嵌套在 Event_groups 中:

= simple_form_for(@event_group) do |f|
  = f.error_notification
  .form-inputs
    = f.input :name
  .form-actions
    = f.button :submit
  .h2 Events (not simple form)
  = f.fields_for :events do |p|
  = link_to_add_fields "Add field", p, :fields
    .field
      = p.label :starts_at
      = p.hidden_field :_destroy
      = link_to "[remove]", '#', class: "remove_fields"
        %p
        = p.fields_for :attendances do |f|
          .field
            = f.label :guest_id
            = f.text_field :guest_id
            = f.label :attendance_rate_id
            = f.text_field :attendance_rate_id

Event_groups.js:

$(document).on 'click', 'form .remove_fields', (event) ->
  $(this).prev('input[type=hidden]').val('1')
  $(this).closest('fieldset').hide()
  event.preventDefault()

$(document).on 'click', 'form .add_fields', (event) ->
  time = new Date().getTime()
  regexp = new RegExp($(this).data('id'), 'g')
  $(this).before($(this).data('fields').replace(regexp, time))
  event.preventDefault()

Application_helper.rb:

module ApplicationHelper
  def link_to_add_fields(name, f, association)
    new_object = f.object.send(association).klass.new
    id = new_object.object_id
    fields = f.fields_for(association, new_object, child_index: id) do |builder|
      render(association.to_s.singularize + "_fields", f: builder)
    end
    link_to(name, '#', class: "add_fields", data: {id: id, fields: fields.gsub("\n", "")})
  end
end

现在我无法让 jQuery 在 Railscasts 中为 DeleteAdd new 工作。 link_to_add_fields & remove 一定有问题。请帮忙

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 railscasts


    【解决方案1】:

    其实现在有更好的方法,使用cocoon gem

    它非常简单,我使用它取得了巨大的成功;)希望你也这样做!

    【讨论】:

    • 我去看看。谢谢!
    【解决方案2】:

    我创建了一个关于嵌套模型表单的仓库,来自与 rails 5 兼容的 rails cast 第 196/197 集。它工作得很好nesting-models-form

    【讨论】:

      猜你喜欢
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 2013-07-21
      相关资源
      最近更新 更多