0

select の後にデータベースから表示されたラベルとデータを非表示にすることに問題があります。私のテーブルにはたくさんの列があるので、それらをすべて呼び出すと、多くのnullデータになります。null データを避けるために、データを表示するときにそれらを非表示にしたい。

show.html.erb

<p>
  <b>Category:</b>
  <%= @combine.master.category if @combine.master %>
</p>

<p id="type">
  <b>Type:</b>
  <%= @combine.type %>
</p>

<p id="project">
  <b>Project name:</b>
  <%= @combine.project_name %>
</p>

<p id="unit">
  <b>Unit no:</b>
  <%= @combine.unit_no %>
</p>

<p id="block">
  <b>Block no:</b>
  <%= @combine.block_no %>
</p>

<p>
  <b>Road name:</b>
  <%= @combine.road_name %>
</p>

<p>
  <b>Level:</b>
  <%= @combine.level %>
</p>

<p>
  <b>Facing:</b>
  <%= @combine.facing %>
</p>

<p>
  <b id="tc">Size:</b>
  <%= @combine.size %>
</p>

<p id="value">
  <b>Value:</b>
  <%= @combine.value %>
</p>

<p id="match">
  <b>Match bank:</b>
  <%= @combine.match_bank %>
</p>

<p>
  <b>Asking:</b>
  <%= @combine.asking %>
</p>

JQuery

$(document).ready(function(){
    if ($("#combine_category_id").val() == 1){
        $("#type").hide();
        $("#block").show();
        $("#level").show();
        $("#tc").text('Size');
        $("#value").hide();
        $("#project").show();
        $("#unit").hide();
        $("#match").show();
    }
        else if ($("#combine_category_id").val() == 3){
        $("#type").hide();
        $("#block").hide();
        $("#road").show();
        $("#level").hide();
        $("#facing").show();
        $("#size").show();
        $("#tc").text('Land size');
        $("#value").hide();
        $("#asking").show();
        $("#project").hide();
        $("#unit").show();
        $("#match").show();
    }
        else if ($("#combine_category_id").val() == 2){
        $("#type").show();
        $("#block").show();
        $("#road").show();
        $("#level").show();
        $("#facing").show();
        $("#size").show();
        $("#tc").text('Size');
        $("#value").show();
        $("#asking").show();
        $("#project").hide();
        $("#unit").hide();
        $("#match").hide();
    }
 });

誰かがこの問題を解決するのを手伝ってくれることを願っています
:)

4

1 に答える 1

1

そのために本当にjavascriptが必要ですか?

次のようなことはどうですか:

<%- unless @combine.type.blank? %>
  <p>
    <b>Type:</b>
    <%= @combine.type %>
  </p>
<%- end %>

残りのフィールドについても同様ですか?反復コードを書くことを避けるために反復を書くこともできます:

<%- %w(type project unit block road_lavel name facing).each do |col| %>
  <%- unless @combine.send(col).blank? %>
    <p>
      <b><%= col.humanize %>:</b>
      <%= @combine.send(col) %>
    </p>
  <%- end %>
<%- end %>

またはそのコードをヘルパー内にも配置します

于 2012-12-07T09:39:39.220 に答える