设计:如何将表格移到您的主页?

时间:2013-01-23 18:25:53

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

在我的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>

我需要做些什么才能让这个工作?或者是Devise有关于此的文档吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

一个例子是here