【问题标题】:How to use devise in an other model?如何在其他模型中使用设计?
【发布时间】:2017-04-03 03:30:31
【问题描述】:

我正在尝试在导航中实现设计登录,但我遇到了一个我无法解决的错误。当我提交表单以运行连接时,出现此错误:

No route matches [POST] "/login"

所以我关注了这个主题的wiki/devise。但不适用于该行:

helper_method :resource_name, :resource, :devise_mapping

我有这个错误:

PlainpageHelper:Module 的未定义方法 `helper_method'

对于我的最后一次尝试,我会尝试将此行添加到我的路由文件中,但它仍然无法正常工作

get 'login', to: 'sessions#new', as: 'login'
get 'logout', to: 'sessions#destroy', as: 'logout'
get 'signup', to: 'users#new', as: 'signup'

我的代码:

我的应用程序(视图/布局/应用程序)=

  <%- if user_signed_in? %>
    <%= render 'partial/_connected'%>
  <% else %>
    <%= render 'partial/_disconnected'%>
  <% end %>

我的表单(视图/部分/_disconnected)=

<li>
   <div class="row">
      <div class="col-md-12">
        Connection via
        <div class="social-buttons">
          <a href="#" class="btn btn-fb"><i class="fa fa-facebook"></i> Facebook</a>
          <a href="#" class="btn btn-tw"><i class="fa fa-twitter"></i> Twitter</a>
        </div>

         <form class="form" role="form" method="post" action="login" accept-charset="UTF-8" id="login-nav">
            <%= simple_form_for(resource, url: session_path(resource_name)) do |f| %>

              <div class="form-group">
                <%= f.input :email, required: false, autofocus: true %>
              </div>
              <div class="form-group">
                <%= f.input :password, required: false %>
              </div>         

              <div class="form-group">
                <%= f.submit "Connection", class: "btn btn-success" %>
              </div>
              <div class="checkbox">
                <%= f.input :remember_me, as: :boolean if devise_mapping.rememberable? %>
              </div>
            <% end %>
         </form>
      </div>
      <div class="bottom text-center">
        New here ? <a href="#"><b>Join Us</b></a>
      </div>
   </div>
</li>

普通页面助手:

module PlainpageHelper

  def resource_name
    :user
  end

  def resource
    @resource ||= User.new
  end

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

end

最后是我的路线:

devise_for :users

  get 'plainpage/index'

  authenticated :user do
    root to: "plainpage#home", as: :authenticated_root
  end

  unauthenticated do
    root 'plainpage#index'
  end

因此,如果您有解决此错误的任何想法,您将成为我的英雄! 谢谢大家,祝您继续愉快!!

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 devise


    【解决方案1】:

    去掉&lt;form class="form" role="form" method="post" action="login" accept-charset="UTF-8" id="login-nav"&gt;simple_form_for会生成form标签,所以是重复的。

    并且不需要在模块PlainpageHelper中添加resource_name, resource, devise_mapping

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多