如何更新同一模型的多个表单?

时间:2010-08-22 21:26:54

标签: ruby-on-rails

我是Rails的新手。

我有一个用户模型。我想要一个允许用户更改其名称和:电子邮件的网页,以及允许他们更改密码的另一个网页。

现在,我有一个要编辑的表单:姓名和:电子邮件

/users/1/edit

页面上的表格是

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

我的routes.rb有

resources :users

这很有效。用户可以编辑他们的名字和:电子邮件就好了。我现在如何使用另一个允许他们更改密码的表单设置另一个网页?

谢谢。

2 个答案:

答案 0 :(得分: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

在视图中,您只需更改密码字段=&gt;表单基本保持不变,提交到您现有的更新操作。

答案 1 :(得分:0)

根据Sanjay关于Toby的回答的评论(以及为了节省任何人,我花了几分钟来解决它)在Rails 3中你将定义路线:

#routes:
resources :users do
 member do
  get 'change_password'
 end
end