0

私は自分のアプリケーションにDeviseを追加中です。すべてうまくいっているようですが、サインインしてページをjqueryコンテナに登録しようとしています。私はフォームを直接貼り付けてみましたが、そのフォームで作成するリソースへの呼び出しで「未定義メソッド」エラーが発生しました。Deviseで部分的に内部でcontent_forを使用

<div class="widget"> 
    <div id="tab-container"> 
     <ul> 
    <li><a href="#create">Create Account</a></li> 
    <li><a href="#signin">Sign In </a></li></ul> 
<div id="create"> 

<%= yield :signup %> 
    </div> 
<div id="signin" style="height: 105px;"> 
    <ul> 
    <%= yield :signin %></ul> 
</div> 
    </div> 
    </div> 

<% content_for :document_ready do %> 
    $('#tab-container').easytabs(); 
<% end %> 
</script> 

はコンテンツ

<h2>Sign up</h2> 
    <% content_for :signup do %> 

    <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name))  
    do |f| %> 
    <%= devise_error_messages! %> 

    <div><%= f.label :email %><br /> 
    <%= f.email_field :email %></div> 

    <div><%= f.label :username %><br /> 
    <%= f.text_field :username %></div> 

    <div><%= f.label :password %><br /> 
    <%= f.password_field :password %></div> 

    <div><%= f.label :password_confirmation %><br /> 
    <%= f.password_field :password_confirmation %></div> 

    <div><%= f.submit "Sign up" %></div> 
    <% end %> 
    <% end %> 

サインアップマイおよびコンテンツの私のログイン

<h2>Sign in</h2> 
    <% content_for :signin do %> 

    <%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do 
    |f| %> 
<div id="login_form"> 
<div><%= f.label :email %><br /> 
    <%= f.email_field :email %></div> 

<div><%= f.label :password %><br /> 
<%= f.password_field :password %></div> 

<% if devise_mapping.rememberable? -%> 
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div> 
<% end -%> 

    <div><%= f.submit "Sign in" %></div> 
    </div> 
<% end %> 
<% end %> 

は、部分的に内側にcontent_for使用することをお勧めしませんか?タブコンテナが呼び出される前にyieldがレンダリングされていませんか?前もって感謝します!

答えて

1

ここで答えが見つかりましたDevise form within a different controller

アプリケーションヘルパーにこれを追加

def resource_name 
    :user 
end 

def resource 
    @resource ||= User.new 
end 

def devise_mapping 
    @devise_mapping ||= Devise.mappings[:user] 
end 
関連する問題