Как я могу иметь несколько форм для обновления одной модели? - PullRequest
1 голос
/ 23 августа 2010

Я новичок в Rails.

У меня есть модель User.Я хотел бы, чтобы веб-страница позволяла пользователям изменять свое имя и адрес электронной почты и другую веб-страницу, которая позволяет им менять свой пароль.

Прямо сейчас у меня есть форма дляedit: имя и: электронная почта на

/users/1/edit

Форма на странице:

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

Мой route.rb имеет

resources :users

Это работает.Пользователи могут редактировать свои: имя и: электронная почта просто отлично.Как мне теперь настроить другую веб-страницу с другой формой, которая позволяет им менять свой пароль?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 июня 2013

Согласно комментарию Санджея относительно ответа Тоби (и чтобы сэкономить кому-либо те несколько минут, которые я потратил на его выяснение) в Rails 3, вы определяете маршруты с помощью:

#routes:
resources :users do
 member do
  get 'change_password'
 end
end
0 голосов
/ 23 августа 2010

Вы можете настроить любые действия, которые вам нравятся, в вашем контроллере. Операции 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

В представлении у вас просто есть поля для смены пароля => форма в основном остается прежней, отправляя существующее действие update .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...