kosen-venture/RocketAnswer

View on GitHub
app/views/user/registrations/edit.html.erb

Summary

Maintainability
Test Coverage
<%= content_for :title do %>登録情報を変更<% end %>


<div class="page-header">
  <h1>登録情報を変更</h1>
</div>

<%= form_for(resource,
  as: resource_name,
  url: registration_path(resource_name),
  html: { method: :put, class: 'form-horizontal' }
  ) do |f| %>

  <%= render partial: 'shared/form_error', locals: { object: resource } %>

  <script>
    $(function(){
      // エラーのあるフィールドを赤く
      <% resource.errors.each do |i| %>
        $('#user_<%= i %>').parents('.form-group').addClass('has-error');
      <% end %>

      // focusされたらエラーを消す
      $('input').focus(function() {
        $(this).parents('.form-group').removeClass('has-error');
      });
    });
  </script>


  <h3><i class="fa fa-user"></i> 利用者情報</h3>
  <div class="form-group">
    <%= f.label :name, class: 'control-label col-sm-2' %>
    <div class="col-sm-4">
      <div class="row">
        <div class="col-xs-6">
          <%= f.text_field :last_name,
            placeholder: '姓',
            autofocus: true,
            class: 'form-control' %>
        </div>
        <div class="col-xs-6">
          <%= f.text_field :first_name,
            placeholder: '名',
            class: 'form-control' %>
        </div>
      </div>
    </div>
    <span class="label label-danger">必須</span>
  </div>

  <div class="form-group">
    <%= f.label :nickname, class: 'control-label col-sm-2' %>
    <div class="col-sm-4">
      <%= f.text_field :nickname,
        class: 'form-control' %>
    </div>
    <span class="label label-danger">必須</span>
    ※一般公開されます
  </div>

  <div class="form-group">
    <%= f.label :email, class: 'control-label col-sm-2' %>
    <div class="col-sm-4">
      <%= f.email_field :email,
        class: 'form-control' %>
    </div>
    <span class="label label-danger">必須</span>
  </div>

  <div class="form-group">
    <%= f.label :password,
      class: 'control-label col-sm-2' %>
    <div class="col-sm-4">
      <%= f.password_field :password,
        autocomplete: "off",
        class: 'form-control' %>
    </div>
    <span class="label label-danger">必須</span>
  </div>

  <div class="form-group">
    <%= f.label :password_confirmation,
      class: 'control-label col-sm-2' %>
    <div class="col-sm-4">
      <%= f.password_field :password_confirmation,
        autocomplete: "off",
        class: 'form-control' %>
    </div>
    <span class="label label-danger">必須</span>
  </div>


  <h3><i class="fa fa-star"></i> 志望大学</h3>
  <p>志望大学を設定すると、今後実装される通知機能や絞り込み機能などが利用できるようになります。</p>
  <%= f.fields_for :wish_universities do |univ_form| %>
    <div class="form-group">
      <%= univ_form.label "第#{univ_form.index + 1}志望",
        class: 'control-label col-sm-2' %>

      <div class="col-sm-6">
        <div class="row">
          <div class="col-xs-6">
            <%= univ_form.collection_select :university_id,
              @universities,
              :id,
              :name,
              { include_blank: true },
              class: 'form-control', placeholder: '大学名' %>
          </div>
          <div class="col-xs-6">
            <%= univ_form.collection_select :department_id,
              univ_form.object.university.try(:departments) || [],
              :id,
              :name,
              { include_blank: true },
              class: 'form-control', placeholder: '学部・学科名' %>
          </div>
          <%= univ_form.hidden_field :rank, value: univ_form.index + 1 %>
        </div>
      </div>
    </div>
  <% end %>
  <p>
    <small>
      ※一覧に登録されていない大学・学科などがありましたら、
      『<%= link_to 'お問い合わせ', contact_path %>』からご連絡ください。
    </small>
  </p>

  <h3><fa class="fa fa-pencil"></fa> アンケート</h3>
  <p>学生の方はアンケートにご協力ください。</p>
  <div class="form-group">
    <%= f.label :school,
      class: 'control-label col-sm-2' %>
    <div class="col-sm-4">
      <%= f.text_field :school,
        class: 'form-control' %>
    </div>
  </div>

  <div class="form-group">
    <%= f.label :department,
      class: 'control-label col-sm-2' %>
    <div class="col-sm-4">
      <%= f.text_field :department,
        class: 'form-control' %>
    </div>
  </div>

  <div class="form-group">
    <%= f.label :graduate_year, class: 'control-label col-sm-2' %>
    <div class="col-sm-4">
      <div class="input-group">
        <%= f.text_field :graduate_year, class: 'form-control' %>
        <span class="input-group-addon">年</span>
      </div>
    </div>
  </div>

  <br>
  <p>※変更を保存するためにはパスワードを入力してください</p>

  <div class="form-group">
    <%= f.label :current_password,
      class: 'control-label col-sm-2' %>
    <div class="col-sm-4">
      <%= f.password_field :current_password,
        autocomplete: "off",
        class: 'form-control' %>
    </div>
    <span class="label label-danger">必須</span>
  </div>

  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <%= f.submit '更新', class: 'btn btn-primary btn-sm' %>
    </div>
  </div>
<% end %>

<div class="page-header">
  <h3>登録を解除する</h3>
</div>
<p>登録を解除する場合は、こちらをクリックしてください。</p>
<%= link_to registration_path(resource_name),
  data: { confirm: "登録を解除してもよろしいですか?" },
  method: :delete,
  class: 'btn btn-sm btn-danger' do %>
  <i class="fa fa-trash-o"></i>
  解除する
<% end %>