Estoy manejando los mensajes de error mediante la gema toastr y una función en javascript que trabaja con la gema.
Uno de los parámetros es resource
y en el formulario partial _comments no lo lleva, y está definido así:
<%= form_for [*commentable, Comment.new], local: true do |f| %><%= render 'shared/devisemes' %> //Esto genera error<div class="form-group"><%= f.text_area :body, autofocus: true, :rows => 2, style: 'width:100%;', placeholder: "Add a comment", class: "form-control" %><br/></div><%= f.submit "Commentate", class: "btn btn-primary pull-right" %><% end %>
Lógicamente como la función se vale de resources
genera error ya que no reconoce a resource
:
**undefined local variable or method `resource' for**
¿Hay forma de redefinir la siguiente línea:
<%= form_for [*commentable, Comment.new], local: true do |f| %>
de esta forma para que funcione?
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
Esté es el código que se invoca en a vistas:
_devisemes.html.erb
<% unless resource.errors.empty? %><script type="text/javascript"><% resource.errors.full_messages.each do |value| %> toastr.error('<%= value %>')<% end %></script><% end %><% unless resource.errors.empty? %><script type="text/javascript"><% resource.errors.full_messages.each do |value| %> toastr.error('<%= value %>')<% end %></script><% end %>
Ejemplo de invocación desde un formulario:
<div class="row"><div class="col-md-4 col-md-offset-4"><h2 class="text-center">Sign up</h2><br/><%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %><%= render 'shared/devisemes' %> //Acá se invoca<div class="form-group"><%= f.text_field :fullname, autofocus: true, placeholder: "Full Name", class: "form-control" %></div><div class="form-group"><%= f.email_field :email, autofocus: true, placeholder: "Email", class: "form-control" %></div><div class="form-group"><%= f.password_field :password, autocomplete: "off", placeholder: "Password", class: "form-control" %></div><div class="actions"><%= f.submit "Sign up", class: "btn btn-primary" %></div><% end %>