我试图允许用户在我的主页/登陆页面上注册该网站。
我已将设备注册表复制到我的登陆页面视图中 -
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :first_name %><br />
<%= f.text_field :first_name %></div>
<div><%= f.label :last_name %><br />
<%= f.text_field :last_name %></div>
<div><%= f.label :profile_name %><br />
<%= f.text_field :profile_name %></div>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>
<div><%= f.submit "Sign up" %></div>
<% end %>
<%= render "devise/shared/links" %>
而且我也曾添加了辅助方法 https://github.com/plataformatec/devise/wiki/How-To%3a-Display-a-custom-sign_in-form-anywhere-in-your-app in my application_controller.rb
这样我就可以正确定义资源-
class ApplicationController < ActionController::Base
protect_from_forgery
def resource_name
:user
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end
end
但是我仍然收到错误undefined local variable or method
resource'
对于 #`
为了在我的主页上正确呈现注册表格,我缺少什么?
您需要将这些控制器方法声明为辅助方法才能从视图访问它们:
helper_method :resource, :resource_name, :devise_mapping
只需将该行添加到您的ApplicationController
定义方法后。
您会注意到您提供的链接实际上提到将此代码放入应用程序中helper,而不是控制器...您可以避免这种情况helper_method
声明,如果你这样做的话。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)