2013-12-03 1 views
1

Я должен разработать модели, User и Vendor. Я создал представления для Vendor и настроил форму регистрации в соответствии с моими потребностями. Мне нужно настроить контроллер для регистраций поставщика, например, так:Рендеринг сообщений об ошибках разработки в пользовательской форме с областью

контроллеры/поставщиков/registrations_controller.rb

class Vendors::RegistrationsController < Devise::RegistrationsController 
    skip_before_filter :require_no_authentication 
    def create 
     super 
    end 

    protected 

    def sign_up(resource_name, resource) 
     true 
    end 

    def new 
     super 
    end 
end 

Мой взгляд на регистрацию поставщика выглядит так:

просмотров/поставщики/регистрация/new.html.erb

<h2>Sign up</h2> 

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => {:multiparet => :true}) do |f| %> 
    <%= devise_error_messages! %> 

    <div><%= f.label :store_name %> 
    <%= f.text_field :store_name %></div> 

     <div><%= f.label :contact_name %> 
    <%= f.text_field :contact_name%></div> 

     <div><%= f.label :contact_phone %> 
    <%= f.text_field :contact_phone %></div> 

     <div><%= f.label :address %> 
    <%= f.text_field :address %></div> 

     <div><%= f.label :image %> 
    <%= f.file_field :image %></div> 

    <div><%= f.label :email %> 
    <%= f.email_field :email, :autofocus => true %></div> 

    <div><%= f.label :password %> 
    <%= f.password_field :password %></div> 

    <div><%= f.label :password_confirmation %> 
    <%= f.password_field :password_confirmation %></div> 

    <div><%= f.submit "Sign up" %></div> 
<% end %> 

<%= render "vendors/shared/links" %> 

При попытке отобразить страницу, я получаю эту ошибку:

undefined method `errors' for nil:NilClass 

Как я могу визуализировать ошибки в этой ситуации? Заранее спасибо!

ответ

-1

Я пишу это как комментарий, но это будет легче читать в ответ:

Может быть, вы могли бы попробовать заменить devise_error_messages! со стандартным дисплеем Rails ошибки:

<% if resource.errors.any? %> 
    <div class="error"> 
     <strong><%= pluralize(resource.errors.count, "Error") %></strong> 
     <ul> 
      <% resource.errors.each do |attr,msg| %> 
       <li><%= msg %></li> 
      <% end %> 
     </ul> 
    </div> 
<% end %> 
+0

Хммм ... Это не сработало для меня. Я получаю 'undefined method 'errors' для ошибки nil: NilClass'. – settheline

+0

Проблема заключается в том, что Devise создает «новый» шаблон по умолчанию вместо ошибки, а не в вашей пользовательской форме. У меня такая же проблема – SsouLlesS

Смежные вопросы