0

作为 Ruby on Rails 的新手,我坚持使用过滤器检查来呈现 nested_form_for 字段。嵌套表单模型中已经有一些数据,这些数据被称为默认数据。现在在编辑模型时,我需要设置只读功能,并且不想在这些默认数据上设置任何删除链接。模型“is_default”中有一个字段实际上表示记录是否为默认值。那么我怎样才能只过滤那些数据呢?请任何人都可以把我拉出来。

提前致谢

4

1 回答 1

0

分享我是如何做到这一点的......
在我的部分渲染文件中,我使用了实际需要的 edit.js.erb,因为我需要使用 AJAX 调用加载所有内容。所以在这一部分中,我添加了额外的 JQuery 代码来设置只读值并隐藏删除锚点。下面是我的代码...

if('<%= @apps_event.is_std %>' == 'y' && '<%= @action %>' != 'create') {
  $("#eventFormContainer").html("<%= escape_javascript(render(:partial => 'form_standard'))%>");
  var stdAttrib = <%= @apps_event.apps_events_attributes.size %>
  var stdAttribStr = 'apps_event_apps_events_attributes_attributes_';
  for (var i=0; i < stdAttrib; i++) {
    if($('#' + stdAttribStr + i + '_is_std').attr('value') === 'y') {
        $('#' + stdAttribStr + i + '_name').attr('readonly', 'readonly');
        var selectValue = $('#' + stdAttribStr + i + '_attribute_type').attr('value');
        $('#' + stdAttribStr + i + '_attribute_type option').each(function() {
            if ( $(this).val() != selectValue ) {
                $(this).remove();
            }
        });
        $('#' + stdAttribStr + i + '_is_std').parent().children('a.remove_nested_fields').css('display', 'none');
    }
  }
}
else {
  $('#eventFormContainer').html("<%= escape_javascript(render(:partial => 'form_custom'))%>");
}

玩得开心... ;)

于 2013-07-09T12:07:49.953 回答