我有这个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
知道我可能做错了什么吗?
谢谢!
答案 0 :(得分:1)
表单部分使用它找不到的局部变量resource
。
您必须将该变量传递给渲染调用。
= render "devise/sessions/form", :locals => {:resource => resource}
您可能还缺少其他变量。我的new.html.haml
还提到resource_name
和devise_mapping
。也许你也必须通过这些变种。
查看rendering partials文档。
顺便说一句,你的HAML应该有- content_for
而不是= content_for
,因为这是一个控制电话。