0

Ruby on Rails の初心者として、フィルター チェックを使用して、nested_form_for フィールドをレンダリングすることに固執しました。ネストされたフォーム モデルには、既定のデータと呼ばれるデータが既に含まれています。モデルを編集する際に、読み取り専用機能を設定する必要があり、これらのデフォルト データに削除リンクを設定したくありません。モデル 'is_default' には、レコードがデフォルトかどうかを実際に示すフィールドがあります。では、これらのデータのみをフィルタリングするにはどうすればよいでしょうか? 誰かが私をこれから引き離してください。

前もって感謝します

4

1 に答える 1

0

これをどのように行ったかを共有してください...
私の部分的なレンダリングファイルでは、AJAX呼び出しを使用してすべてのものをロードする必要があるため、実際に必要なedit.js.erbを使用しています。そのため、この部分では、追加の 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 に答える