2011-07-15 32 views
0

我使用Devise,現在/users/edit只包含Devise的密碼更改表單。我想添加一個用戶設置表單。Rails/Devise:如何爲/ users/edit修改控制器?

我是Rails的新手,做這件事的最好方法是什麼?

查看對於/users/edit似乎在/app/views/devise/passwords/edit.html.erb
控制器對於/users/edit無處可查。如何從Rails的魔術中提取它,以便我可以修改它?

回答

0

相應的視圖是app/views/devise/registrations/edit.html.erb。您不需要控制器將其他字段添加到註冊表單中,即使它是另一個模型的嵌套表單字段。只需在您的用戶模型中進行適當的更改以保存嵌套關聯(accepting_nested_attributes_for),attr_accessible等。

+0

謝謝!我按照你的說法做了,但它可以工作,但用戶每次想要編輯其設置時都不應該輸入新密碼。我創建了一個單獨的(類似的)form_for,但如果用戶在未填寫密碼更改表單的情況下更改其城市,則會出現錯誤:「請輸入您的當前密碼」。即使他點擊了第二個(與密碼無關的)表單的更新按鈕。任何想法? –

+0

閱讀關於此的設計wiki。有一篇文章正是關於消除這種需求的。考慮一下這可能帶來的安全影響。 –

+0

@珍妮:你是指https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit-their-account-without-providing-a-password?它講述了刪除:current_password,所以這是一個不同的問題。我不想改變密碼更改表單的工作方式。我只想讓用戶能夠在不需要密碼的情況下改變他的城市。兩種不同的形式。 –