我正在尝试使用 AJAX 针对我的会员模型呈现我使用设计 2.2.0 创建的注册/登录表单。现在,为了返回 format.js,我没有修改原始的设计 SessionsController,而是创建了一个新控制器,它仅用于渲染“设计/会话/新”模板(请注意,format.html 仅用于调试目的) - 见下面的代码:
class SessionsAjaxController < ApplicationController
def new
@member = Member.new
respond_to do |format|
format.html { render :template => 'devise/sessions/new', :locals => { :resource => @member, :resource_name => Member } }
format.js { render :template => 'devise/sessions/new', :layout => false, :locals => { :resource => @member, :resource_name => Member} }
end
end
我在尝试直接转到“/sessions_ajax/new”或从 AJAX 加载时收到以下错误:
undefined method `email' for #<Class:0x410e608>
并且错误指向 new.html.erb 中的“第 11 行附近”
10: <%= f.label :email, "EMAIL" %><br />
11: <%= f.email_field :email, :autofocus => true %>
我将资源和资源名称正确地传递为:locals,所以我不太明白我在这里做错了什么。有任何想法吗?
谢谢!