모델이 특정 상태 (예 : sign_in_count> 1)를 입력 한 후에 만 레일스 모델 속성이 변경되지 않도록 보호하려고합니다. 주위를 둘러 보았다 나는 그것을 조건으로 사용할 수있는 속성을 보호하기 위해몽고 이드 : 속성이 변경되지 않도록 보호
attr_readonly
를 사용하는 사람들을 볼? 그렇지 않은 경우 대체 솔루션이 있습니까? 감사.
모델이 특정 상태 (예 : sign_in_count> 1)를 입력 한 후에 만 레일스 모델 속성이 변경되지 않도록 보호하려고합니다. 주위를 둘러 보았다 나는 그것을 조건으로 사용할 수있는 속성을 보호하기 위해몽고 이드 : 속성이 변경되지 않도록 보호
attr_readonly
를 사용하는 사람들을 볼? 그렇지 않은 경우 대체 솔루션이 있습니까? 감사.
나는 당신이하고 싶은 것을 정말로 이해하지 못한다. 그래서 여기에 몇 가지 일반적이지만 관련된 목적이있다. Btw, rails 4
의 속성은 보호되지만 protected_attributes
gem을 사용하면 rails 3
동작을 수행 할 수 있습니다.
btw, ruby
에서 사용할 수있는 freeze
메서드는 고정 된 개체의 수정을 방지하기 위해 호출 할 수 있습니다. (객체가 실제로 고정되어 있는지 확인하려면 객체에 frozen?
을 호출하면 true 또는 false가 반환됩니다.
또 다른 말은 changed—attributes
을 호출하여 모델의 변경 상태를 확인할 수 있다는 것입니다. 이는 원래 값과 상대적으로 변경된 필드의 해시를 반환합니다.
편집 : 당신은 물론이 문장
attr_readonly :some, :attributes unless some_condition
및 버전은 당신이 무엇을 사용하는 레일
def some_condition
sign_in_count > 1
end
정의를 설정할 수 있습니까? – Newben
@Newben rails 3.2.17 –
확인 내 편집을 볼 수 있습니다. – Newben