가상웨어 하우스를 구축하려고합니다. 데이터베이스의 열 중 하나에 고정 값이 있어야하는웨어 하우스 내의 위치 목록이 포함됩니다. 창고는 통로 DA에서 조지아로 분할되며 각 통로는 011에서 603으로 분할됩니다. 모든 통로를 가로 지르는 가로 통로가 있으며 특정 위치를 제거합니다 (실제로는 실제 기존 창고에서 오는 것입니다). 다른 열은 제품 이름, 제품 무게 및 수량입니다. 내 마이그레이션 코드는 다음과 같습니다열 중 하나에서 고정 값을 미리 정의하는 방법
def change
create_table :locations do |t|
t.string :location # this column is supposed to have fixed values
t.string :product # name of a product like CocaCola Zero 8x2L
t.decimal :product_weight
t.integer :quantity
t.timestamps
end
을 별도의 문서에서 나는 클래스라는 위치를 만들어 내가 방법 데프 위치 목록 생성이 클래스 내에서 numbers_letters 불렀다 :
def numbers_letters
@digit = 3
aisle_number = 0
odd_list = []
even_list = []
for @letter in "DA".."GA"
aisle_number = aisle_number + 1
@letter.next!
while @digit < 604
@digit += 8
if aisle_number.odd?
odd_list << @digit
else
even_list << @digit
end
@digit += 2
if aisle_number.odd?
odd_list << @digit
else
even_list << @digit
end
end
@digit = 3
odd_list.each do |odd|
if odd > 350 && odd < 604
od = format('%003d', odd)
$list_of_locations << @letter + od
elsif odd < 322 && odd > 3
od = format('%003d', odd)
$list_of_locations << @letter + od
end
end
even_list.each do |even|
if even > 300 and even < 604
ev = format('%003d', even)
$list_of_locations << @letter + ev
elsif even > 3 and even < 262
ev = format('%003d', even)
$list_of_locations << @letter + ev
end
end
odd_list = []
even_list = []
end
end
내 목표를 사용자가 사용 가능한 목록에서 위치를 선택하고 제품의 케이스의 무게와 양을이 위치로 설정할 수있는 페이지를 만드는 것입니다. 나중에 배포 작업을 프로그램하고 싶지만 지금은이 문제를 해결해 보겠습니다. 나는 당신의 요구 사항을 이해하지만 마이그레이션 파일에 다음을 설정하지
난 그냥 내 질문에 업데이트 한 같은 클래스 메소드를 사용하는 것이 좋습니다 것입니다. 보세요, 당신은 지금 이해할 수 있습니다. 기본적으로 원하는 위치는 DA011, DA012 .... DB011, DB12 ....... GA603입니다. 600 개가 넘는 위치가 있지만 답변에서 다음과 같이 할 수 있습니다. t.string : location, default : $ list_of_locations .. 맞습니까? –