나는 다음과 같은 모델이 있습니다는 레일에 이동에 관계 belongs_to 업데이트 할 수 없습니다
Class User::Basic
belongs_to: group
Class Group
has_many: users
class_name: "::User::Basic",
foreign_key: "group_id"
가 나는 또한 (GROUP_ID -1 동일)
그룹 클래스에 속하는하지 않는User::Admin
클래스를 가질를
그룹이없는 기존 데이터베이스가 있습니다. 마이그레이션을 통해 기본 사용자 그룹을 편집하려고합니다.
add_column :users, :group_id, :integer, :default => -1 #so that when a group_id is not specified, the user is ranked as admin
# I create groups 1,2,3 and 4 and then :
User.find(21, 3, 8, 17, 16, 18, 14, 19, 23, 25, 26).each do |usr|
usr.update_attributes(group_id: 2)
end
User.find(11, 13, 20, 9).each do |usr|
usr.update_attributes(group_id: 1)
end
User.find(15,22).each do |usr|
usr.update_attributes(group_id: 3)
end
User.find(24).update_attributes(group_id: 4)
을하지만 모든 사용자가 여전히 마이그레이션을 실행 한 후 -1 GROUP_ID이 내 마이그레이션에서
나는 있습니다. 콘솔에서 마지막 비트를 실행하려고 시도했는데 아무도 왜 이것이 마이 그 레이션에서 작동하지 않는지 알 수 있습니까?
시도 다'usr.group_id = 2; usr.save! '. 레코드가 성공적으로 저장되면 true를 반환하고 그렇지 않으면 유효성 검사 오류를 발생시킵니다. – RAJ
나는 그것을 시도하고 유효성 검사 오류가 발생했습니다. – user284130
편집 : 콘솔에서 정상적으로 작동했지만 오류는 발생하지 않았지만 마이그레이션에서는 작동하지 않았습니다. – user284130