Как создать пароль и подтверждение при использовании form_for? - PullRequest
7 голосов
/ 25 октября 2010

Я использую form_for, но я не уверен, как создать пароль и подтверждение пароля с помощью помощников?

Пока у меня есть:

<%= form_for :user, @user, ....   do |f| %>

<%= f.text_field :user_name, :class ....  %>

password??

<% end %>

Кроме того, при публикации в действие / user / create, как мне предотвратить инициализацию определенных полей в модели при использовании:

@user = User.new(params[:user])

Ответы [ 2 ]

16 голосов
/ 25 октября 2010

Поместите это в форму просмотра:

<%= f.password_field :password %>
<%= f.password_field :password_confirmation %>

И это в вашей пользовательской модели:

validates_confirmation_of :password

Теперь, чтобы предотвратить нежелательные инициализации в вашем контроллере, добавьте следующее к вашемумодель:

attr_accessible :attribute1, attribute2

Теперь эти атрибуты будут единственными атрибутами, которые можно установить с помощью так называемого «массового назначения».

2 голосов
/ 25 октября 2010

Если у вас есть столбец базы данных password (конечно, вам лучше хранить соль и зашифрованный пароль), то вы можете сделать это:

class User
  attr_accessor :password_confirmation # Note. You do not need this field in database, it's for 1-time use

  # The following 2 lines let you prevent certain fields
  attr_accessible :user_name
  attr_protected :password
  # Note that if you used attr_accessible, and all other fields cannot be assigned through User.new(params[:user[), while if you used attr_protected, only those fields cannot assigned.

 validates_confirmation_of :password # This automatically validates if :password == :password_confirmation

На ваш взгляд:

<%= f.password_field :password %>
<%= f.password_field :password_confirmation %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...