学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

【民泊5.1】【Windows】部屋ビュー

app\views\room\new.html.erb

<div class="panel panel-default">
  <div class="panel-heading">
    お部屋の登録
  </div>
  <div class="panel-body">
    <div class="container">

      <%= form_for @room do |f| %>

        <div class="row">

          <div class="col-md-4 select">
            <div class="form-group">
              <label>お家のタイプ</label>
              <%= f.select :home_type, [["マンション", "マンション"], ["アパート", "アパート"], ["一戸建て", "一戸建て"]],
                             id: "home_type", prompt: "選択してください", class: "form-control" %>
            </div>
          </div>

          <div class="col-md-4 select">
            <div class="form-group">
              <label>お部屋のタイプ</label>
              <%= f.select :room_type, [ ["プライベート", "プライベート"], ["シェア", "シェア"]],
                            id: "room_type", prompt: "選択してください", class: "form-control" %>
            </div>
          </div>

          <div class="col-md-3 select">
            <div class="form-group">
              <label>宿泊可能人数</label>
              <%= f.select :accommodate, [["2人", 2], ["3人", 3], ["4人以上", 4]],
                            id: "accommodate", prompt: "選択してください", class: "form-control" %>
            </div>
          </div>
        </div>
        <div class="row">
 
          <div class="col-md-4 select">
            <div class="form-group">
              <label>ベッド数</label>
              <%= f.select :bed_room, [["1台", 1], ["2台", 2], ["3台", 3], ["4台以上", 4]],
                            id: "bed_room", prompt: "選択してください", class: "form-control" %>
            </div>
          </div>

          <div class="col-md-4 select">
            <div class="form-group">
              <label>部屋数</label>
              <%= f.select :bath_room, [["1部屋", 1], ["2部屋", 2], ["3部屋", 3], ["4部屋以上", 4]],
                            id: "bath_rooms", prompt: "選択してください", class: "form-control" %>
            </div>
          </div>

        </div>
        <br/>
        <br/>
        <br/>
        <div><%= f.submit "登録する", class: "btn btn-normal" %></div>

      <% end %>

    </div>
  </div>
</div>



サーバ起動
rails s


ブラウザ確認
http://localhost:3000/rooms/new


部屋の登録
部屋の登録


「app\views\rooms」フォルダに「_room_menu.html.erb」ファイルを新規作成


app\views\rooms\_room_menu.html.erb(新規作成したファイル)

<ul class="sidebar-list">
  <li class="sidebar-item">
    <%= link_to "お部屋の概要", listing_room_path, class: "sidebar-link active" %>
    <span class="pull-right text-babu"><i class="fa fa-check"></i></span>
  </li>
  <li class="sidebar-item">
    <%= link_to "1泊の宿泊価格", pricing_room_path, class: "sidebar-link active" %>
    <% if !@room.price.blank? %>
      <span class="pull-right text-babu"><i class="fa fa-check"></i></span>
    <% end %>
  </li>
  <li class="sidebar-item">
    <%= link_to "お部屋の名前と説明", description_room_path, class: "sidebar-link active" %>
    <% if !@room.listing_name.blank? %>
      <span class="pull-right text-babu"><i class="fa fa-check"></i></span>
    <% end %>
  </li>
  <li class="sidebar-item">
    <%= link_to "お部屋の写真", photo_upload_room_path, class: "sidebar-link active" %>


  </li>
  <li class="sidebar-item">
    <%= link_to "付属設備", amenities_room_path, class: "sidebar-link active" %>
    <span class="pull-right text-babu"><i class="fa fa-check"></i></span>
  </li>
  <li class="sidebar-item">
    <%= link_to "お部屋の住所", location_room_path, class: "sidebar-link active" %>
    <% if !@room.address.blank? %>
      <span class="pull-right text-babu"><i class="fa fa-check"></i></span>
    <% end %>
  </li>
</ul>
<hr/>

<% is_ready = !@room.active && !@room.price.blank? && !@room.listing_name.blank? && !@room.address.blank? %>

<%= form_for @room do |f| %>
  <%= f.hidden_field :active, value: true %>
  <%= f.submit "公開する", id: "publish_button", class: "btn btn-normal btn-block", disabled: !is_ready %>
<% end %>



app\views\rooms\photo_upload.html.erb

<div class="row">
  <div class="col-md-3">
    <%= render 'room_menu' %>
  </div>
  <div class="col-md-9">
    <div class="panel panel-default">

      <div class="panel-heading">
        お写真
      </div>

      <div class="panel-body">
        <div class="container">
          <div class="row">
            <div class="col-md-offset-3 col-md-6">
              <!--写真アップロードの記述 -->


            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>



app\views\rooms\listing.html.erb

<div class="row">
  <div class="col-md-3">
    <%= render 'room_menu' %>
  </div>
  <div class="col-md-9">
    <div class="panel panel-default">

      <div class="panel-heading">
        お部屋の概要
      </div>

      <div class="panel-body">
        <div class="container">
      <%= form_for @room do |f| %>

        <div class="row">

          <div class="col-md-4 select">
            <div class="form-group">
              <label>お家のタイプ</label>
              <%= f.select :home_type, [["マンション", "マンション"], ["アパート", "アパート"], ["一戸建て", "一戸建て"]],
                             id: "home_type", prompt: "選択してください", class: "form-control" %>
            </div>
          </div>

          <div class="col-md-4 select">
            <div class="form-group">
              <label>お部屋のタイプ</label>
              <%= f.select :room_type, [ ["プライベート", "プライベート"], ["シェア", "シェア"]],
                            id: "room_type", prompt: "選択してください", class: "form-control" %>
            </div>
          </div>

          <div class="col-md-3 select">
            <div class="form-group">
              <label>宿泊可能人数</label>
              <%= f.select :accommodate, [["2人", 2], ["3人", 3], ["4人以上", 4]],
                            id: "accommodate", prompt: "選択してください", class: "form-control" %>
            </div>
          </div>
        </div>
        <div class="row">
 
          <div class="col-md-4 select">
            <div class="form-group">
              <label>ベッド数</label>
              <%= f.select :bed_room, [["1台", 1], ["2台", 2], ["3台", 3], ["4台以上", 4]],
                            id: "bed_room", prompt: "選択してください", class: "form-control" %>
            </div>
          </div>

          <div class="col-md-4 select">
            <div class="form-group">
              <label>部屋数</label>
              <%= f.select :bath_room, [["1部屋", 1], ["2部屋", 2], ["3部屋", 3], ["4部屋以上", 4]],
                            id: "bath_rooms", prompt: "選択してください", class: "form-control" %>
            </div>
          </div>

        </div>
        <br/>
        <br/>
        <br/>
        <div><%= f.submit "修正する", class: "btn btn-normal" %></div>

      <% end %>

        </div>
      </div>
    </div>
  </div>
</div>



app\views\rooms\amenities.html.erb

<div class="row">
  <div class="col-md-3">
    <%= render 'room_menu' %>
  </div>
  <div class="col-md-9">
    <div class="panel panel-default">

      <div class="panel-heading">
        附属設備
      </div>

      <div class="panel-body">
        <div class="container">
           <%= form_for @room do |f| %>

           <div class="row form-group">
              <div class="col-md-4">
                <%= f.check_box :is_tv %> テレビ
              </div>
              <div class="col-md-4">
                <%= f.check_box :is_kitchen %> キッチン
              </div>
              <div class="col-md-4">
                <%= f.check_box :is_internet %> インターネット
              </div>
            </div>

            <div class="row form-group">
              <div class="col-md-4">
                <%= f.check_box :is_heating %> 暖房
              </div>
              <div class="col-md-4">
                <%= f.check_box :is_air %> エアコン
              </div>
            </div>
            <br/><br/>

            <div class="text-center">
              <%= f.submit "保存", class: "btn btn-normal" %>
            </div>

           <% end %>

        </div>
      </div>
    </div>
  </div>
</div>



app\views\rooms\description.html.erb

<div class="row">
  <div class="col-md-3">
    <%= render 'room_menu' %>
  </div>
  <div class="col-md-9">
    <div class="panel panel-default">

      <div class="panel-heading">
        お部屋の名前と説明
      </div>

      <div class="panel-body">
        <div class="container">
          <%= form_for @room do |f| %>
              <div class="row">
                <div class="form-group">
                  <label>お部屋の名前</label>
                  <%= f.text_field :listing_name, placeholder: "お部屋の名前", class: "form-control", required: true, id: "autoaddress" %>
                </div>
             </div>

             <div class="row">
               <div class="form-group">
                 <label>説明</label>
                 <%= f.text_area :summary, rows: 5, placeholder: "部屋の説明", class: "form-control", required: true, id: "autoaddress" %>
               </div>
            </div>

             <div class="text-center">
              <%= f.submit "保存", class: "btn btn-normal" %>
             </div>
          <% end %>

        </div>
      </div>
    </div>
  </div>
</div>



app\views\rooms\location.html.erb

<div class="row">
  <div class="col-md-3">
    <%= render 'room_menu' %>
  </div>
  <div class="col-md-9">
    <div class="panel panel-default">

      <div class="panel-heading">
        お部屋の住所
      </div>

      <div class="panel-body">
        <div class="container">
           <%= form_for @room do |f| %>
               <div class="row">
                 <div class="form-group">
                   <label>住所</label>
                   <%= f.text_field :address, placeholder: "住所を入力", class: "form-control", required: true, id: "autoaddress" %>
                 </div>
              </div>

              <div class="text-center">
               <%= f.submit "保存", class: "btn btn-normal" %>
              </div>
           <% end %>
        </div>
      </div>
    </div>
  </div>
</div>



app\views\rooms\pricing.html.erb

<div class="row">
  <div class="col-md-3">
    <%= render 'room_menu' %>
  </div>
  <div class="col-md-9">
    <div class="panel panel-default">

      <div class="panel-heading">
        1泊の宿泊価格
      </div>

      <div class="panel-body">
        <div class="container">
          <%= form_for @room do |f| %>
              <div class="row">
                <div class="form-group">
                  <label>価格</label>
                  <%= f.text_field :price, placeholder: "例: 5,000円", class: "form-control", required: true, id: "autoaddress" %>
                </div>
             </div>

             <div class="text-center">
              <%= f.submit "保存", class: "btn btn-normal" %>
             </div>
          <% end %>

        </div>
      </div>
    </div>
  </div>
</div>



ブラウザ確認
http://localhost:3000/rooms/new


部屋が登録できるか確認してみましょう。


http://localhost:3000/rooms/1/listing