作为Ruby on Rails的新手,我坚持使用过滤器检查来渲染nested_form_for字段。嵌套表单模型中已经包含一些数据,据说这些数据是默认数据。现在,在编辑模型时,我需要设置只读功能,并且不希望在这些默认数据上设置任何删除链接。模型'is_default'中有一个字段实际上表示该记录是默认的。那么我怎样才能过滤那些数据呢?任何人都可以把我拉出来。
提前致谢
答案 0 :(得分:0)
分享我是如何做到这一点的...... 在我的部分渲染文件中,我使用了edit.js.erb,这实际上是必需的,因为我需要使用AJAX调用加载所有东西。所以在这部分我添加了额外的JQuery代码来设置readonly值并隐藏删除锚点。以下是我的代码......
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'))%>");
}
玩得开心......;)