我剛剛在我的Rails應用程序上安裝了Devise。我按照Devise' github的說明操作。我跟着它到我必須運行$ rails generate devise:views
,它創建了幾個Devise視圖(會話,註冊,& c)。如何使用Devise使用自定義登錄頁面表格
我的計劃是使用修改後的Devise的內置視圖頁面(Devise已經做了創建後端機制的辛勤工作,我想保留這一點)。登錄/登錄頁面將需要電子郵件和密碼。它也會記住我和一個提交按鈕,就像Devise的默認登錄頁面一樣。更重要的是,它會在我的welcome/index
頁面(主/根頁面)
我對form_for
相當陌生,所以我無法理解要替換的代碼。我在api.rubyonrails上的form_for上做了一些閱讀。
下面是設計的內置登錄意見
app/views/devise/sessions/new.html.erb
<h2>Log in</h2>
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
<div class="field">
<%= f.label :email %><br />
<%= f.email_field :email, autofocus: true %>
</div>
<div class="field">
<%= f.label :password %><br />
<%= f.password_field :password, autocomplete: "off" %>
</div>
<% if devise_mapping.rememberable? -%>
<div class="field">
<%= f.check_box :remember_me %>
<%= f.label :remember_me %>
</div>
<% end -%>
<div class="actions">
<%= f.submit "Log in" %>
</div>
<% end %>
<%= render "devise/shared/links" %>
我的理論是,上面的代碼應該在任何地方工作,只要我點的form_for向右類(用戶),並在正確的道路。
我將上面的代碼複製到welcome/index頁面並更改了resource
。
<%= form_for :user, url: session_path(:user) do |f| %>
給我undefined local variable or method devise_mapping for #<#<Class:0x007fd4f2e9eb38>:0x007fd4f29ea858>
錯誤。
好吧,於是我刪除了remember me
按鈕,但是現在卻顯示出undefined local variable or method resource_name for #<#<Class:0x007fd4f2e9eb38>:0x007fd4f3813358>
錯誤。
是否可以在我的歡迎/索引頁面上重複使用Devise的登錄頁面?如果沒有,我如何在welcome/index上創建一個form_for用戶的電子郵件和密碼?