Как мне использовать form_for? - PullRequest
       3

Как мне использовать form_for?

0 голосов
/ 18 сентября 2010

Я пытаюсь создать форму для создания пользователя. В настоящее время у меня есть

- form_for @user do |f|
  = "Username"
  %br
  = f.text_field :username
  %br
  = "Password"
  %br
  = f.text_field :password
  %br
  = "Confirm Password"
  %br
  = f.text_field :password_confirmation
  %br
  = "Email"
  %br
  = f.text_field :email
  %br
  = f.submit "Submit app"

Я получаю сообщение об ошибке undefined method 'password' for #<User:0x8e20750> У пользователя есть метод password =, но поскольку я шифрую пароль перед его сохранением, метод пароля не существует. У кого-нибудь есть обходной путь или исправление?

Ответы [ 2 ]

0 голосов
/ 18 сентября 2010

Я согласен с mdrozdziel, что вы можете попробовать Authlogic (не пытался придумать сам) выстрел.

При использовании form_for f.text_field: some_field похоже на выражение text_field: model,: some_field. Итак: some_field нужно поле в вашей базе данных или вам нужны методы getter и setter.

как сказал Мдроздзиль

attr_accessor :password

или вы можете определить методы получения и установки в вашей модели, если вы хотите больше контроля.

#in your model
def password
   # return something
end

def password=(pwd)
   # set something
end
0 голосов
/ 18 сентября 2010

Вы также должны опубликовать свою модель, но я предполагаю, что вам нужно добавить:

attr_accessor :password

Кстати, есть ли причина, по которой вы используете свою собственную логику аутентификации? Может быть, вам стоит попробовать комплексные решения, такие как Authlogic или Devise?

Также, пожалуйста, посмотрите на Formtastic Gem. Это действительно помогает создавать формы.

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