Hola, estoy tratando de configurar una validación que solo se llame en una vista de formulario específica, para hacer esto, intento crear un hidden_field para un atributo virtual en el formulario y establezca esto en un valor, luego valide: si el atributo virtual es igual al valor.Rails 3: crear una validación con: if statement
hasta ahora tengo:
## user model
validates_presence_of :password_confirmation, :if => :confirmation_validation
attr_accessible :email, :password, :password_confirmation,
:remember_me, :name, :avatar, :username, :bio, :confirmation_validation
def confirmation_validation
# not sure what goes here???
end
## form view
<%= form_for(resource, :validate => true, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }, :html => {:multipart => true}) do |f| %>
<%= devise_error_messages! %>
<p><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
<%= f.password_field :password %></p>
<p><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %>
<% f.hidden_field :confirmation_validation, :value => 100%></p>
<p><%= f.submit "Update" %></p>
<% end %>
Hey, lo anterior está mostrando un error para mí y es la siguiente el error. No se pueden asignar atributos probados en masa. ¿Por qué? –
@Rajesh Agregue: password_confirmation a su attr_accessible. – scarver2