2010-08-22 72 views
1

我是Rails的新手。我怎樣纔能有多種形式更新相同的模型?

我有一個用戶模型。我想要一個網頁,允許用戶更改他們的:姓名和電子郵件地址,然後另一個網頁允許他們更改密碼。

現在,我有一個表格編輯:名稱和:在

/users/1/edit 

電子郵件頁面上的形式

<%= form_for(@user) do |f| %> 

我的routes.rb有

resources :users 

這可行。用戶可以編輯他們的:姓名和電子郵件就好了。我現在如何使用另一個允許他們更改密碼的表單設置另一個網頁?

謝謝。

回答

0

您可以在控制器中設置您喜歡的任何操作。默認的CRUD操作可以涵蓋基本的內容,但是對於您可以執行的操作沒有固有的限制。

#controller: 
def change_password 
    render :action => "change_password" 
end 

#routes: 
map.resource :users, :member => {:change_password => :get} 

#view: 
<%= form_for(@user) do |f| %> 

以上將創建路由: /用戶/ 1/change_password

在您只需更改密碼字段中的視圖=>形式基本保持不變,提交到現有更新行動。

+0

謝謝你,託比。我使用的是Rails 3,所以語法有點不同,但這足以讓我繼續前進。 – Sanjay 2010-08-26 06:30:43

0

每從桑傑關於託比的答案評論(並保存任何人,我把弄明白了幾分鐘)在Rails 3中,你將與定義路線:

#routes: 
resources :users do 
member do 
    get 'change_password' 
end 
end 
相關問題