【发布时间】: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