我是Rails的新手。
我有一个用户模型。我想要一个允许用户更改其名称和:电子邮件的网页,以及允许他们更改密码的另一个网页。
现在,我有一个要编辑的表单:姓名和:电子邮件
/users/1/edit
页面上的表格是
<%= form_for(@user) do |f| %>
我的routes.rb有
resources :users
这很有效。用户可以编辑他们的名字和:电子邮件就好了。我现在如何使用另一个允许他们更改密码的表单设置另一个网页?
谢谢。
答案 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