내 응용 프로그램은 특정 유형의 레코드 (체크 레지스터와 같은 것)에 자동으로 번호 (1001부터 시작)를 할당해야합니다. 숫자는 입력 화면의 일부로 표시되어야하지만 물론 수정할 수는 없습니다.내 자동 증가 필드를 할당하는 방법은 무엇입니까?
레일스에서 어떻게합니까?
참고 : 이것은 id 필드와 아무 관련이 없습니다.
내 응용 프로그램은 특정 유형의 레코드 (체크 레지스터와 같은 것)에 자동으로 번호 (1001부터 시작)를 할당해야합니다. 숫자는 입력 화면의 일부로 표시되어야하지만 물론 수정할 수는 없습니다.내 자동 증가 필드를 할당하는 방법은 무엇입니까?
레일스에서 어떻게합니까?
참고 : 이것은 id 필드와 아무 관련이 없습니다.
알고 계시 겠지만 auto_increment
열을 하나만 테이블로 설정할 수 있으며 그 값은 primary key
으로 정의해야합니다. 따라서 id
필드가 테이블의 primary key
이므로이 옵션을 사용할 수 없습니다.
이 애플리케이션을 내부적으로 수행해야합니다. 그냥 테이블에 integer
열을 추가 :
add_column :table_name, :column_name, :integer
그런 다음 마지막으로 만든 데이터 집합의 열 값을 수치 모델에 대한 방법을 추가 할 수 있습니다.
def self.last_<column_name>_used
return last.<column_name> unless last.nil?
return 1000
end
def self.next_<column_name>_to_use
last_<column_name>_used+1
end
그런 다음를 automaticly incremended해야되는에 Model.next__to_use의 값을 할당 filter
을 사용할 수 있으며 또한 형태로 표시해야 할 가치를 얻을하는 데 사용할 수 있습니다. 양식은 jQuery를 사용하여 쉽게 비활성화 할 수 있습니다.
희망이 있습니다.