0

在我的 views/devise/sessions/new.erb.html 文件中,我有以下行

> <%= form_for(resource, :as => resource_name, :url =>
> session_path(resource_name), :html => { :class => "form-horizontal
> well"}) do |f| %>

这很好用,但是如果我尝试将此表单放在我的主页上,我会收到错误消息...

undefined local variable or method `resource' for #<#<Class:0x2950e78>:0x563118>

我需要做什么才能使它正常工作?或者是否有关于此的设计文档?

4

2 回答 2

1

Devise 对其身份验证的对象采取了一种不可知论的方法,它resource只是您使用devise_for路由文件中定义的映射的代理。也就是说,如果您已经知道资源的名称,您可以手动指定它,例如:

<%= form_for("user", :url => user_session_path, :html => { :class => "form-horizontal well"}) do |f|%>

或者,您可以简单地在控制器内部定义相应的resourceresource_name方法,如您链接的文档中所示。

于 2013-01-23T18:32:50.787 回答
0

您还可以将 Devise 辅助方法添加到您的 controller_helper.rb。对于家庭控制器,我相信它是 application_helper.rb。

一个例子是here

于 2013-01-24T21:58:07.927 回答