1

新しいホテルを作成および編集するための標準的な rails form_for タグがあります。これは、edit_hotels_path を介してアクセスすると問題なく表示されますが、new_hotels_path を表示すると、html フォーム タグが設定されdisplay: none;、フォームが「新しい」ビューでのみ表示されなくなります。

サーバーを再起動し、キャッシュを空にし、同じ CSS を使用していることを確認しましたが、表示が none に設定されたままレンダリングされます。開発者ツールを使用して表示されるスタイルは次のとおりです

<form accept-charset="UTF-8" action="/hotels" class="new_hotel" id="new_hotel" method="post" style="display: none; "><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"><input name="authenticity_token" type="hidden" value="pDlR3gV2tm+Z7xRFdC0uclNY13FlzxUSOjOrHs2ttO0="></div>

element.style {
display: none;
}

以下は、レンダリングされる html ソースで、display: none; は含まれていません。

    <form accept-charset="UTF-8" action="/hotels" class="new_hotel" id="new_hotel" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="pDlR3gV2tm+Z7xRFdC0uclNY13FlzxUSOjOrHs2ttO0=" /></div>

  <div class="control-group">
    <div class="controls">
    <input id="hotel_name" name="hotel[name]" placeholder="Name..." size="30" type="text" /><br>
        <select id="hotel_year" name="hotel[year]"><option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option></select><br>
        <select id="hotel_month" name="hotel[month]"><option value="January">January</option>
<option value="February">February</option>
<option value="March">March</option>
<option value="April">April</option>
<option value="May">May</option>
<option value="June">June</option>
<option value="July">July</option>
<option value="August">August</option>
<option value="September">September</option>
<option value="October">October</option>
<option value="November">November</option>
<option value="December">December</option></select><br>

    <textarea cols="40" id="hotel_body" name="hotel[body]" placeholder="Hotel info up to 1000 words..." rows="20">
</textarea><br>
    <input id="hotel_meta_tags" name="hotel[meta_tags]" placeholder="Enter meta tags for image, as a comma separated list..." size="30" type="text" /><br>
<legend>Winner</legend>
        <input name="hotel[winner]" type="hidden" value="0" /><input id="hotel_winner" name="hotel[winner]" type="checkbox" value="1" />
        <br/>

    </div>
<div class="form-actions">
    <input class="btn-large btn-success" name="commit" type="submit" value="create" />
  </div>
</div>
</form>

以下はコードです。

_form.html.erb

<%= form_for @hotel do |f| %>
<% if @hotel.errors.any? %>
  <div id="error_explanation">
    <h2><%= pluralize(@hotel.errors.count, "error") %> prohibited this article from being saved:</h2>

    <ul>
    <% @hotel.errors.full_messages.each do |msg| %>
      <li><%= msg %></li>
    <% end %>
    </ul>
  </div>
<% end %>


    <%= render partial: "shared/code_sheet" %>
  <div class="control-group">
    <div class="controls">
    <%= f.text_field :name, placeholder: "Name..." %><br>
        <%= f.select :year, [2012, 2013, 2014, 2015] %><br>
        <%= f.select :month, ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] %><br>

    <%= f.text_area :body, placeholder: "Hotel info up to 1000 words..." %><br>
    <%= f.text_field :meta_tags, placeholder: "Enter meta tags for image, as a comma separated list..." %><br>
<legend>Winner</legend>
        <%= f.check_box :winner %>
        <br/>

    </div>
<div class="form-actions">
    <%= f.submit "create", class: "btn-large btn-success" %>
  </div>
</div>
<% end %>

edit.html.erb

<div class="container">
<h1>Editing hotel</h1>

<%= render "form" %>
<%= link_to 'hotels index', hotels_path %>
</div>

new.html.erb

<div class="container">
<h1>New hotel</h1>

<%= render "form" %>
<%= link_to 'hotels index', hotels_path %>
</div>
4

1 に答える 1

2

それは何でもかまいません。CSS の内容を理解する必要があります。「display: none;」を検索しましたか? あなたのCSSファイルで一致をチェックしましたか?element.style は通常、HTML タグに直接設定されます。ビューを検索してデバッグ文字列も配置し、適切な .html がプルされていることを確認します。

于 2012-09-27T16:28:51.717 に答える