Devise current_user не работает после частичной регистрации через помощник приложения

Так что раньше мой код разработки работал без проблем. Однако сегодня, после изменения некоторых веб-сайтов, включая частичную регистрацию моего устройства и добавление следующего кода в мой помощник приложения (извините, что это было неправильно раньше, устал: P)

  def resource_name
    :user
  end

  def resource
    @resource ||= User.new
  end

  def devise_mapping
    @devise_mapping ||= Devise.mappings[:user]
 end

метод current_user больше не работает. Может ли кто-нибудь сказать мне, почему?

Код для частичного

<div class="panel panel-default">
 <div class="panel-heading">
 </div>

 <div class="panel-body"> 
  <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
    <%= devise_error_messages! %>

    <div class="form-group">
      <h5> <FONT FACE="HELVETICA NEUE"> Name</font></h5>
      <%= f.text_field :name, autofocus: true, class: "form-control" %>
    </div>

    <div class="form-group">
      <h5> <FONT FACE="HELVETICA NEUE"> Company </font></h5>
      <%= f.text_field :company, class: "form-control" %>
    </div>

    <div class="form-group">
      <h5> <FONT FACE="HELVETICA NEUE"> Real Estate Email </font></h5>
      <%= f.email_field :email, class: "form-control" %>
    </div>

    <div class="form-group">
      <h5> <FONT FACE="HELVETICA NEUE"> Telephone</font></h5>
      <%= f.telephone_field :telephone, class: "form-control" %>
    </div>

    <div class="form-group">
      <h5> <FONT FACE="HELVETICA NEUE"> Password </font></h5>
      <%= f.password_field :password, class: "form-control" %>
    </div>

    <div class="form-group">
      <h5> <FONT FACE="HELVETICA NEUE"> Confirm Your Password </font></h5>
      <%= f.password_field :password_confirmation, class: "form-control" %>
    </div>

    <div class="form-group">
      <%= f.submit "Sign up", class: "btn btn-primary" %>
    </div>
  <% end %>
 </div>
</div>

person user2495222    schedule 31.05.2014    source источник
comment
Пожалуйста, уточните вашу проблему. Как выглядит ваш частичный и что именно вы изменили!   -  person Himesh    schedule 31.05.2014
comment
Согласен - нужно больше кода. В частности, ваши partial и application helper   -  person Richard Peck    schedule 31.05.2014


Ответы (1)


Скорее всего проблема будет в следующем:

сделать регистрацию моего устройства частичной


текущий_пользователь

Когда вы упоминаете, что ваш метод current_user «больше не работает», я не думаю, что дело в том, что он не будет работать; скорее всего, это будут ваши изменения, которые препятствуют его работе.

Без кода я могу только строить догадки, но есть несколько вещей, которые вам нужно прояснить:

--

event handler

Вы упомянули, что включили Devise resource helpers в свой "event_handler". Я не уверен, что вы имеете в виду, но самый надежный способ заставить это работать — использовать официальная документация Devise и поместите ее в application_helper.rb:

#app/helpers/application_helper.rb
  def resource_name
    :user
  end

  def resource
    @resource ||= User.new
  end

  def devise_mapping
    @devise_mapping ||= Devise.mappings[:user]
  end

--

partial

Вы упомянули, что используете partial, чтобы показать devise registration view. Это хорошо, но как вы передаете ему данные? Возможно, у вас возникнет проблема, из-за которой вы не сможете получить доступ к помощнику resource, так как он назначен event_handler.

person Richard Peck    schedule 31.05.2014
comment
Извините, я перепутал терминологию. Я имел в виду помощник приложения, а не обработчик событий. - person user2495222; 31.05.2014
comment
лол, это многое объясняет! Если вы не можете найти больше решений, прокомментируйте здесь, и мы можем поговорить в чате, если хотите. - person Richard Peck; 31.05.2014