Я работаю над приложением ROR и застрял, когда дело доходит до разработки и подтверждения пароля.Я хотел бы, чтобы мои пользователи могли редактировать свою информацию (имя, местоположение и т. Д.) Без необходимости вводить и подтверждать свой пароль (то есть, если они не решат изменить свой пароль, в этом случае эти поля будут обязательными).)
Я немного прочитал, когда дело дошло до разработки, и я заметил, что это общая проблема.К сожалению, я перепробовал все решения, опубликованные в репозитории GitHub, но не смог решить мою проблему.
Однако я нашел обходной путь, но у меня возникла проблема, которая, я надеюсь, будет окончательной.шаг.Вот небольшой фрагмент того, как выглядит мой players.rb
файл (у меня есть два набора учетных записей - игроков и владельцев):
has_one :account, :as => :profile
accepts_nested_attributes_for :account, :reject_if => proc { |attributes| attributes['password'].blank? }
мой accounts.rb
файл выглядит так:
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me, :invited_by, :invited_by_id
Так как он настроен прямо сейчас, игроки могут редактировать свой профиль без необходимости ввода пароля, если они не пытаются редактировать поле: пароль - это отлично, и мой желаемый результат.Однако, я сталкиваюсь с небольшим препятствием ... :reject_if => proc { |attributes| attributes['password'].blank? }
выполняется, даже когда создается новая учетная запись (игрок)!Это означает, что если игрок не вводит пароль, вместо того, чтобы предлагать ему ввести пароль, приложение тормозит!
Мне нужна помощь в написании оператора if или какого-либо условия, которое в основном вызывает только reject_if
условия, если Учетная запись принадлежит зарегистрированному (существующему) игроку.
Я пытался: :reject_if => proc { |attributes| attributes['password'].blank? unless Player.new}
и
if Player.new
accepts_nested_attributes_for :account
else
accepts_nested_attributes_for :account, :reject_if => proc { |attributes| attributes['password'].blank? }
end
Я не могу понять это,поэтому я решил посмотреть, может ли кто-нибудь предложить свое мнение или совет.Как всегда, я очень благодарен за ваше время и любую помощь, которую вы можете предложить.Спасибо!