Aşağıdaki sorunu yaşıyorum. Etkinleştirilmiş bir sütun içeren bir kullanıcı isimli modelim var. Metodu aktive ettiğinde bu değeri güncellemeye çalışıyorum, ama bana hata veriyor: Doğrulama başarısız: Şifre boş bırakılamaz, Şifre çok kısa (minimum 6 karakter) Benim için mantıklı değil, çünkü dokunmuyorum şifre alanı! Sadece aktifleştirilmiş sütunu güncellemek istiyorum. Buraya koyacağım kodun ilgili olduğunu düşünüyorum, ama daha fazlasına ihtiyacınız olduğunu düşünüyorsanız sadece sor :) Şimdiden çok teşekkür ederim!Raylar update_attribute
Modeli: yöntem aktif olan
attr_accessor :password
attr_accessible :name, :email, :password, :password_confirmation, :activated
has_many :sucu_votes
email_regex = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :name, :presence => true,
:length => { :maximum => 50 }
validates :email, :presence => true,
:format => {:with => email_regex},
:uniqueness => { :case_sensitive => false }
validates :password, :presence => true,
:length => { :within => 6..15 },
:confirmation => true
before_save :encrypt_password
def activated?
self.update_attributes!(:activated => true)
return self.activated
end
Kontrol? İlk yakut kongre değil, yalnızca daha bir kaydı güncelleştirmek gibi bir şey yapmak için doğru ya da yanlış dönmek için yüklem yöntemleri kullanmaktır,
def activate
if request.get?
user=User.find_by_id(params[:id])
if user.activated?
flash[:notice]="Your account has been activated"
#redirect_to :controller => 'sessions', :action => 'new'
else
flash[:error]="We couldnt activate the account"
redirect_to :controller => 'sessions', :action => 'new'
end
end
end
Çok teşekkür ederim kayıt için geri aramaları atlayın olmalı! Aslında daha önce böyle yapmıştım, ama başka bir nedenden dolayı çalışmıyordu. Ama hepsi şimdi tamam :) – gumlym