2011-05-23 34 views
1

我需要自定義設計編輯密碼頁以包含用戶模型中包含的一些細節。設計編輯密碼頁 - 訪問用戶模型

我在網上快速瀏覽過,但找不到任何文檔提及有權訪問用戶模型的視圖。

有沒有辦法訪問它?

編輯:我有意見等,它具體是關於在編輯密碼頁面訪問用戶模型。我需要對其進行個性化。

回答

0

查看github上的Devise Wiki(https://github.com/plataformatec/devise/wiki),此外,您需要在您的應用程序主頁中運行以下命令。 rails g devise:views或針對特定模型rails g devise:views modelName

將在app/views/devise下創建視圖樹。

在視圖,參考對象resource

<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %> 
... 

您可以安全地刪除你,如果你想使用HAML或苗條的觀點並不需要通過乘坐的意見,那就是也可以看看這個wiki頁面=>https://github.com/plataformatec/devise/wiki/How-To:-Create-Haml-and-Slim-Views

+0

感謝您的答覆,但我已經有我的模板,問題是如何在編輯密碼(app/views/devise/password/edit.html.haml)文件中訪問用戶模型(如在模態實例中)。 – d2kagw 2011-05-23 06:27:17

+0

用戶模式應該被拉進'資源' – colinross 2011-05-23 06:42:08

+0

以上回答更新 – colinross 2011-05-23 06:48:41

0

運行這個,它會將你的視圖複製到一個名爲'shared'的文件夾中,用於R < 3和'設計'。

rails g devise:views 

然後,您可以自定義視圖。你應該能夠理解這些事情中的一切,它只是Rails MVC的東西。

如果你有一個特定的色器件模型,你應該具體型號按名稱:

rails g devise:views users 
0

rails generate devise:views users

這會爲用戶生成模式的看法。然後你可以手動編輯你想要的。

1
= render :template => 'devise/passwords/edit', :locals => {:resource => current_user,:resource_name => User } 

鑑於 嘗試一下本作devise_errors包括devise_helper.rb或寫自己的錯誤處理

0

我想做同樣的事情。我暫時將resource.inspect放入視圖中,並且看到它是一個用戶實例,其所有屬性nil除了reset_password_token

User.find_by_reset_password_token(resource.reset_password_token) 

或者更通用的:

resource.class.find_by_reset_password_token(resource.reset_password_token) 

您可以使用直接在視圖,或將其分配到的一個實例變量鑑於此,我用蠻力訪問相應的用戶記錄控制器,如果你重寫設計控制器。請注意,如果令牌無效,它將返回nil。 (看起來Devise在用戶提交表單之前不會檢查標記的有效性,因此您可以使用無效的標記來查看該視圖。)

更新03/2014

由於色器件3.1,你需要查找之前消化令牌:

resource.class.find_by_reset_password_token(Devise.token_generator.digest(resource.class, :reset_password_token, resource.reset_password_token))