Skip to content

Instantly share code, notes, and snippets.

@YuriFontella
Created June 27, 2015 20:43
Show Gist options
  • Save YuriFontella/70e2f4771f966a6ca18b to your computer and use it in GitHub Desktop.
Save YuriFontella/70e2f4771f966a6ca18b to your computer and use it in GitHub Desktop.
validates attr específico
<%= form_for @user, :html => { :class => 'ui form attached fluid segment cadastro', :onsubmit => 'cadastro()' } do |f| %>
<% if @user.errors[:email].any? %>
<div class="ui error message visible">
<div class="header"><i class="icon attention"></i>Atenção</div>
<p><%= @user.errors[:email] %></p>
</div>
<% end %>
<div class="two fields">
<div class="field <%= error_tag @user, :name %>">
<label>Seu Nome</label>
<%= f.text_field :name, placeholder: "Seu nome" %>
</div>
<div class="field <%= error_tag @user, :second_name %>">
<label>Sobrenome</label>
<%= f.text_field :second_name, placeholder: "Sobrenome" %>
</div>
</div>
<div class="field <%= error_tag @user, :gender %>">
<label>Sexo</label>
<div class="ui fluid selection dropdown">
<div class="text"><p style="color:#ccc">Selecione</p></div>
<i class="dropdown icon"></i>
<%= f.text_field :gender, type: 'hidden' %>
<div class="menu">
<div class="item" data-value="masculino">Masculino</div>
<div class="item" data-value="feminino">Feminino</div>
</div>
</div>
</div>
<div class="field <%= error_tag @user, :email %>">
<label>E-mail</label>
<%= f.text_field :email, placeholder: "E-mail" %>
</div>
<div class="field <%= error_tag @user, :password %>">
<label>Senha</label>
<%= f.password_field :password, placeholder: "Senha" %>
</div>
<div class="inline field <%= error_tag @user, :terms %>">
<div class="ui checkbox">
<%= f.check_box :terms %>
<label>Eu aceito os termos e condições <a href="#" class="item floated left terms">Termos</a></label>
</div>
</div>
<%= f.submit 'Cadastrar', class: 'ui teal submit button' %>
<% end %>
<!-- Avisos -->
<% if @user.errors.any? %>
<div class="ui bottom attached error message">
<i class="icon attention"></i>
<%= @user.errors.full_messages.first do |message| message end %>
</div>
<% end %>
@brenoperucchi
Copy link

user.rb

validates :email, presence: true, if: :email_presence
attr_accessor :email_presence?
def email_presence
   self.email_presence = true if self.email.blank?
end

view

<% if @user.email_presence? %>
  <div class="ui error message visible">
  <div class="header"><i class="icon attention"></i>Atenção</div>
    <p><%= I18n.t(:taken, scope: 'errors.messages') %></p>
  </div>
<% endif %>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment