Tôi gặp vấn đề sau. Tôi có một mô hình được gọi là người dùng có một cột có tên là kích hoạt. Tôi cố gắng cập nhật giá trị đó bằng phương thức được kích hoạt ?, nhưng nó cho tôi lỗi: Xác thực không thành công: Mật khẩu không được để trống, Mật khẩu quá ngắn (tối thiểu là 6 ký tự) Không hợp lý với tôi, vì im không chạm vào trường mật khẩu! Tôi chỉ muốn cập nhật cột được kích hoạt. Im đặt ở đây mã tôi nghĩ rằng nó có liên quan, nhưng nếu bạn nghĩ rằng bạn cần nhiều hơn chỉ cần hỏi :) Cảm ơn bạn rất nhiều trước!Rails update_attribute
mẫu:
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
điều khiển từ đó phương pháp kích hoạt? được gọi là
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
Cảm ơn bạn rất nhiều! Tôi thực sự đã có nó như thế trước đây, nhưng nó không hoạt động vì một lý do khác. Nhưng tất cả ok của nó bây giờ :) – gumlym