如何在其他模型中使用设计?

时间:2017-04-03 03:30:31

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

我正在尝试将设计登录到导航中,但是我遇到了一个我无法解决的错误。当我提交表单来运行连接时,我有这个错误:

No route matches [POST] "/login"

所以我按照wiki/devise来处理这个问题。但是没有使用该行:

helper_method :resource_name, :resource, :devise_mapping

我有这个错误:

  

PlainpageHelper的未定义方法`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 %>

我的表单(views / partial / _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

所以,如果您有任何想法来解决这个错误,那么您将成为我的英雄! 谢谢大家,好好继续!!

1 个答案:

答案 0 :(得分:0)

删除<form class="form" role="form" method="post" action="login" accept-charset="UTF-8" id="login-nav">simple_form_for会生成form标记,因此它是重复的。

并且无需在模块resource_name, resource, devise_mapping

中添加PlainpageHelper