0
는 내가 레일 콘솔에서이 작업을 실행 :내 레일 앱에 업데이트 된 속성을 가진 기존 사용자를 저장할 수없는 이유는 무엇입니까?
이u = User.first
User Load (0.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
=> #<User id: 4, name: "Administrator", email: "[email protected]", created_at: "2013-09-27 01:01:54", updated_at: "2013-09-29 23:52:11", password_digest: ".......", remember_token: "........", admin: true, num_credits: nil>
2.0.0p247 :002 > u.num_credits = 1
=> 1
2.0.0p247 :003 > u.num_credits
=> 1
2.0.0p247 :004 > u.save
(0.3ms) begin transaction
User Exists (0.3ms) SELECT 1 AS one FROM "users" WHERE (LOWER("users"."email") = LOWER('[email protected]') AND "users"."id" != 4) LIMIT 1
(0.2ms) rollback transaction
=> false
감사! "암호가 너무 짧다"는 말을 듣고 있는데, 나는 잊어 버렸습니다. 기존 사용자에 대한 검증이었습니다. 암호가 변경 될 때만 실행되는 유효성 검사를 수행 할 수 있습니까? 이렇게하면 컨트롤러는 비밀번호를 입력하지 않고도 사용자의 필드 (이 경우 num_credits)를 변경할 수 있습니까? – jackerman09
내 후속 질문에 대한 의견이 있으십니까? – jackerman09
업데이트시 변경 사항을 생성하거나 속성 변경시 생성하지 않거나 둘 다 수행하도록 유효성 검사를 복원 할 수 있습니다 – techvineet