Простое сравнение строк не работает!Разочарование наступает - PullRequest
0 голосов
/ 27 февраля 2011

Я не могу понять, почему это сравнение не работает:

if params[:password].to_s == params[:conf_password].to_s
  #do something
else
  #do something else

Результат всегда ложный, выполняя блок else ... Кто-нибудь знает почему?

Редактировать:Проверка вывода показывает, что эти два параметра идентичны.«пароль» собирается с использованием «form_for» и «conf_password» из password_field_tag.

Если в «form_for» включено «conf_password», ошибка такого метода не возникает, поскольку в модели нет столбца conf_password.Возможно, есть лучший способ сбора этого параметра, который может решить проблему.

некоторые записи журнала, касающиеся параметров.

PARAMS: {"password"=>"1234567", "company"=>"company1", "companykey"=>"ckey2"}, "conf_password"=>"1234567", 

Код для получения этих значений

<tr> <td> <%= label_tag(:password, "Password") %> </td> <td> <%= f.password_field :password %> </td> </tr>

<tr> <td> <%= label_tag(:conf_password, "Confirm Password") %> </td> <td> <%= password_field_tag(:conf_password) %> </td> </tr>

1 Ответ

3 голосов
/ 27 февраля 2011

Мне кажется, что вы не должны обращаться к :password и :conf_password так же, как параметр :password находится внутри хеша, а :conf_password - нет.

Когда вы объявляете form_for, вы также определяете хеш, содержащий :password, и вам необходимо получить доступ к :password -параметру с помощью new Object(params[:object]).password.Вы также можете получить доступ к параметру с помощью params[:object][:password].

Пример непроверенного примера на основе кодирования-вставки

<%= form_for @person do |f| %>
  <%= f.label :first_name %>:
  <%= f.text_field :first_name %><br />

  <%= f.label :password %>:
  <%= f.text_field :password %><br />

  <%= f.submit %>
<% end %>

Пример непроверенного контроллера на основе вычета, а не знания

if Person.create(params[:person]).password == 'foobar'
   # go on
else 
   # fail
end

Подробное описание см. В APIhttp://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html

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