您好我在我的应用程序的索引页面上创建了一个Devise登录表单
错误:“nil的未定义方法`router_name':NilClass”
<%= form_for("user", :url => new_user_session_path, :html => {:class => "cd-form"}) do |f| %>
<%- flash.each do |name, msg| -%>
<%= content_tag :div, msg, :id => "flash_#{name}" if msg.is_a?(String) %>
<%- end -%>
<span class="cd-error-message">Error message here!</span>
<div class="field">
<%= f.label :email, :class => 'image-replace cd-username' %><br />
<%= f.email_field :email, :class => 'full-width has-padding has-border', autofocus: true %>
</div>
<div class="field">
<%= f.label :password %>
<% if @validatable %>
<em>(<%= @minimum_password_length %> characters minimum)</em>
<% end %><br />
<%= f.password_field :password, :class => 'full-width has-padding has-border', autocomplete: "off" %>
</div>
<div class="field">
<%= f.label :password_confirmation, :class => 'image-replace cd-password-2' %><br />
<%= f.password_field :password_confirmation, :class => 'full-width has-padding has-border', autocomplete: "off" %>
</div>
<%= render "users/shared/links" %>
<div class="actions">
<%= f.submit "Sign up", :class => 'full-width has-padding' %>
</div>
<% end %>
我没有使用可安装的引擎,也不打算使用。
按照其他指南,我也把它放在我的控制器中
def resource_name
:user
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end
...
添加此项以抑制错误
...
def router_name
end
我认为不需要在devise.rb
中配置它答案 0 :(得分:0)
您已声明
&lt;%= form_for(&#34;用户&#34;
(字符串)改为
&lt;%= form_for(:user
(对象)
答案 1 :(得分:0)
我通过将<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/red" android:state_pressed="true"/>
<item android:drawable="@android:color/red" android:state_hovered="true"/>
<item android:drawable="@android:color/transparent"/>
</selector>
重命名为/views/user
(添加/views/users
)来导致同样的错误。
更改它解决了这个问题。
这可能不会为所有人解决,但可能对某些人有帮助。