AJAXを使用して、メンバーモデルに対してdevise 2.2.0を使用して作成したサインアップ/サインインフォームをレンダリングしようとしています。ここで、元のデバイスの SessionsController を変更する代わりに、format.js を返すために、「devise/sessions/new」テンプレートをレンダリングするためだけの新しいコントローラーを作成しました (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 %>
resource と resource_name を :locals として正しく渡しているので、ここで何が間違っているのかよくわかりません。何か案は?
ありがとう!