com*_*ile 6 controller ruby-on-rails view devise
我正在尝试允许用户在我的主页/目标网页上注册该网站.我已将设计注册表复制到我的目标网页视图中 -
<%= 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" %>
Run Code Online (Sandbox Code Playgroud)
我还在我的帮助方法中添加了帮助方法,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
Run Code Online (Sandbox Code Playgroud)
但是我仍然收到undefined local variable or method resource'#<#:0x007fa816b4b750>` 的错误
我在这里错过了什么来在我的主页登陆页面上正确呈现注册表单?
Pin*_*nyM 15
您需要将这些控制器方法声明为帮助方法,以便从视图中访问它们:
helper_method :resource, :resource_name, :devise_mapping
Run Code Online (Sandbox Code Playgroud)
只需ApplicationController在定义方法后在您的内部添加该行.
您会注意到您提供的链接实际上提到将此代码放在应用程序助手中,而不是控制器...... helper_method如果您这样做,可以避免此声明.
| 归档时间: |
|
| 查看次数: |
5090 次 |
| 最近记录: |