2014-09-30 186 views
1

我最近開始使用Ruby on Rails,並使用Devise gem進行身份驗證。當我開始一個新的應用程序來嘗試Devise Gem時,工作得很好。但是,我使用的模板在主頁上有登錄和註冊表單。由於Devise創建了兩個新視圖,我不需要它們,我將不得不將這兩個視圖代碼移到我的home.html.erb文件中。登錄並註冊主頁

我遇到的問題是,在按照these steps後,表單被創建,我填寫用戶名和密碼,但按下提交按鈕什麼也沒有。此外,在提交底部創建了三個鏈接;登錄,註冊和忘記密碼,將我重定向到Devise創建的頁面,這是我試圖避免的頁面。

我看了很多地方,但沒有運氣。我有一個星期的RoR經驗和兩天的​​Devise Gem經驗,所以我必須做一些荒謬的事情。任何幫助?

這裏是登錄表單,我複製到我的home.html.erb文件

<%= form_for("user", :url => user_session_path) do |f| %> 
    <div><%= f.label :email %><br /> 
    <%= f.email_field :email, :autofocus => true %></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> 
    <% end %> 
    <%= render "devise/shared/links" %> 

這裏是我的應用助手文件:

module ApplicationHelper 
    def resource_name 
    :user 
    end 

    def resource 
    @resource ||= User.new 
    end 

    def devise_mapping 
    @devise_mapping ||= Devise.mappings[:user] 
    end 

end 

和我的配置/路線.RB文件:

devise_for :users 
    root 'pages#home' 

編輯建議的routes.rb

get "pages/home" 
    devise_for :users 

    devise_scope :users do 
    get "pages/home", :to => "devise/sessions#new" 
    post "https://stackoverflow.com/users/sign_in", :to => "devise/sessions#create", :as => :sign_in 
    end 

還是沒有結果。

回答

0

不確定您的路線是如何設置的,但是如果您想顯示自定義登錄/註冊視圖並將其引導至適當的位置,則需要確保您更改設計的範圍路線並將其引導至您的自定義視圖/路線。

例如,如果你想改變你的帖子路線註冊(您點擊提交後),你可能有這樣的事情:

devise_scope :user do 
    get "/home", :to => "devise/sessions#new", :as => :home 
    post "https://stackoverflow.com/users/sign_up", :to => "devise/sessions#create", :as => :sign_up 
end 

我只是做了該名稱空間爲您的目的,但它可能會有所不同。

這將是值得的看看它詳細描述瞭如何更改默認的登錄和註冊建立路由here

希望這有助於設計文檔。

編輯:

在此尋找進一步的以後,雖然上面的信息對你有所幫助,我認爲實際上可能是你的問題是,你缺失:用戶對你的form_for的第一線。請嘗試這樣做:

<%= form_for(:user, :url => user_session_path(:user)) do |f| %> 

這是如何顯示在我上面提供的鏈接上。

+0

非常感謝您的回答。我編輯了我的問題,添加了我的routes.rb文件,然後在home.html.erb文件中編輯了該行。 我試過你的建議,現在主頁只顯示基本形式的Devise日誌。所以基本上,這將登錄的URL從/ users/sign_in更改爲/ pages/home。我的家庭觀點發生了什麼? – 2014-09-30 23:24:24

+0

對不起,我以前的評論結果是錯誤的,我已經按照你的建議更新了我的routes.rb,但結果與以前一樣。在我的模板中登錄表單,點擊提交按鈕時沒有任何反應。 – 2014-09-30 23:41:59