2011-09-22 38 views
0

我目前已將我的設計登錄表單設置爲像這樣。而不是content_for,我只想將這些內容放在部分內容中(名爲views/devise/sessions/_new.html.erb而不是views/devise/sessions/new.html.erb)以在佈局中呈現。但是,當我這樣做,我得到嘗試將content_for改爲partial並獲取「未定義的本地變量或方法資源...」

undefined local variable or method resource for #<#<Class:0x0000010300f6f0>:0x0000010300da30>

<% content_for :header do %> 
    <div id="login"> 
     <%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %> 
      <div class="login_header"><%= f.email_field :email, :placeholder => "Email" %></div> 

      <div class="login_header"><%= f.password_field :password, :placeholder => "Password" %></div> 

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

      <div class="login_header"><%= f.submit "Sign in" %></div> 
     <% end %> 
     <br /><br /> 
     <%= render :partial => "devise/shared/links" %> 
    </div> 
<% end %> 

回答

2

它的抱怨,它不知道,你傳遞給form_for一個局部變量。您需要傳遞一個名爲resource的局部變量或將其設置爲控制器中的實例變量。

+0

如何將其設置爲實例變量? – user852974

+1

在你的控制器動作中,使用'@resource =不管它應該是什麼',然後把它改成'form_for(@resource ...'在視圖中 –

相關問題