Ruby on Rails - 尝试呈现设计登录表单时出错

时间:2012-04-18 14:26:57

标签: ruby-on-rails ruby devise haml

我有这个haml文件:

= content_for :page_title do
  = t :page_title_login
= content_for :primary_content do
  #login_box
    .span6
      #traditional-login
        %hgroup
          %h3= t :heading_account_login
        = render "devise/sessions/form"

    .span4

= content_for :before_closing_body_tag do
  configure_login_form(#{request.xhr?.to_s.downcase});

它位于我的app/views/mobile/sessions/new.haml.html路径中。

它给出了这个错误:

Showing /Users/alexgenadinik/projects/cmply/cmply-app/app/views/devise/sessions/_form.html.haml where line #1 raised:

undefined local variable or method `resource' for #<#<Class:0x148213358>:0x14820dac0>

但是当我注释掉这一行时:

= render "devise/sessions/form"

它呈现页面但没有实际形式。所以我认为我需要那一行,我只是不确定如何在不收到错误的情况下添加该行。

这是我的控制器:

class Mobile::SessionsController < ApplicationController
  def create
    redirect_to home

  end

  def new
    redirect_to home
  end
end

知道我可能做错了什么吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

表单部分使用它找不到的局部变量resource

您必须将该变量传递给渲染调用。

= render "devise/sessions/form", :locals => {:resource => resource}

您可能还缺少其他变量。我的new.html.haml还提到resource_namedevise_mapping。也许你也必须通过这些变种。

查看rendering partials文档。

顺便说一句,你的HAML应该有- content_for而不是= content_for,因为这是一个控制电话。