2017-11-05 8 views
0

이 질문 또는 이와 비슷한 질문이 이전에 제기되었지만 발견 된 해결책 중 어느 것도 저에게 효과가 없었습니다.부트 스트랩을 통합 한 후에 오류 메시지가 표시되지 않음을 확인하십시오.

그래서 Devise 인증 보석을 사용하여 웹 사이트를 구축하고 있으며 최근에는 스타일링을 위해 부트 스트랩을 통합하려고했습니다. 작동하지만 Devise 오류 메시지가 더 이상 가입 페이지 (즉, 특정 필드가 비어있을 수 없다는 것을 사용자에게 알리는 메시지 등)에 표시되지 않습니다.

는 (나는 일을 부러 부트 스트랩의 결합이다 확실하지 않다, 그러나 그 커밋 어딘가에 발생 않았다.) 또한 노트의

는 사용자가 가입하기가 실패 할 경우에 리디렉션 페이지 URL이다 "https://my-site-wanderspeak.c9users.io/users"에서이 괴물에게 변경되었습니다 : "https://my-site-wanderspeak.c9users.io/users/sign_up?utf8=%E2%9C%93&authenticity_token=QI2XnYtJnm2VdWbff%2B1HGCHQ21r1aQR7li%2FemTWJni3sP0vl7f%2FIyRDdXVf1iAdRsGpK63skwc6UqUEXFvK2Gg%3D%3D&user%5Bfirstname%5D=&user%5Blastname%5D=&user%5Bdob%282i%29%5D=11&user%5Bdob%283i%29%5D=5&user%5Bdob%281i%29%5D=2017&user%5Bphone%5D=&user%5Bemail%5D=&user%5Bpassword%5D=&user%5Bpassword_confirmation%5D=". 둘 다 동일한 가입 페이지이지만 첫 번째 오류 메시지가 포함됩니다.

내보기 :

<head> 
    <!-- Include Bootstrap and HTML Kickstart (for style) --> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous"> 
    <link rel="stylesheet" href="/assets/kickstart.css" media="all" /> <!-- KICKSTART --> 
    <%= stylesheet_link_tag "users" %> 
</head> 

<body> 
    <form> 
    <div class="container" style="background-color:white"> 
     <div class="row" style="text-align:center"> 
     <div class="col-md-12" style="margin-bottom:5px"> 
      <h2>Sign up</h2> 
     </div> 
     </div> 

     <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 
     <%= devise_error_messages! %> 

     <div class="row"> 
     <div class="col-md-6 left-col form-group"> 
      <div class="field padded"> 
      <label>First name:</label> 
      <%= f.text_field :firstname, size: "20" %> 
      </div> 

      <div class="field padded"> 
      <label>Last name:</label> 
      <%= f.text_field :lastname, size: "20" %> 
      </div> 

      <div class="field padded"> 
      <label>Date of birth:</label> 
      <%= date_select :user, :dob, :start_year => 1900, :end_year => 2017, :use_month_numbers => true, :order => [:month, :day, :year] %> 
      </div> 

      <div class="field"> 
      <label>Phone:</label> 
      <%= f.text_field :phone, :id => "phone", placeholder: "(___) ___-____", size: "16" %> 
      </div> 

      <div class="field padded"> 
      <label>Email:</label> 
      <%= f.email_field :email, placeholder: "(this will be your username)", size: "32" %> 
      </div> 

      <div class="field padded"> 
      <label>Password:</label> 
      <%= f.password_field :password, autocomplete: "off", placeholder: "(6 characters minimum)", size: "24" %> 
      </div> 

      <div class="field padded"> 
      <label>Confirm password:</label> 
      <%= f.password_field :password_confirmation, autocomplete: "off", size: "24" %> 
      </div> 
     </div> 
     </div> 

     <div class="row"> 
     <div class="col-md-12" style="text-align:center"> 
      <div class="actions" style="margin-bottom:20px; margin-top:-10px"> 
      <button class="large purple">Sign Up</button> 
      </div> 

      <% end %> 
     </div> 
     </div> 
    </div> 
    </form> 

    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script> 
가 (. 엔딩 </body> 태그가 어떤 이유로 게재되지 않음)

내 application.html.erb :

<html> 
    <head> 
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/> 
    <title>Welcome to the Community Board!</title> 
    <%= stylesheet_link_tag 'application', 'media' => 'all', 'data-turbolinks-track' => true %> 
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 
    <%= csrf_meta_tags %> 
    </head> 
    <body> 
    <h1 class="title">Welcome to the Community Board!</h1> 
    <div id="main"> 
     <% if flash[:notice] %> 
     <div class="message" id="notice"> 
      <%= flash[:notice] %> 
     </div> 
     <% elsif flash[:warning] %> 
     <div class="message" id="warning"> 
      <%= flash[:warning] %> 
     </div> 
     <% end %> 
     <%= yield %> 
    </div> 
    </body> 
</html> 

내 (수정) devise_helper.rb :

module DeviseHelper 
    # A simple way to show error messages for the current devise resource. If you need 
    # to customize this method, you can either overwrite it in your application helpers or 
    # copy the views to your application. 
    # 
    # This method is intended to stay simple and it is unlikely that we are going to change 
    # it to add more behavior or options. 
    def devise_error_messages! 
    return "" if resource.errors.empty? 

    messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join 

    html = <<-HTML 
     <div class="alert alert-danger"> 
     <button type="button" class="close" data-dismiss="alert">x</button> 
     <strong>#{messages}</strong> 
     </div> 
    HTML 

    html.html_safe 
    end 
end 

내가 포함해야하는 다른 정보가 있으면 알려주십시오.

답변

0

대답 :보기에서 <form> 태그를 제거하십시오.

이유를 모릅니다.