레일 4로 열거 형을 사용하여 처음으로 몇 가지 문제가 발생하여 더러운 솔루션을 염두에두고 거기에 더 멋진 솔루션이 있는지 확인하고 싶습니다.레일 4 열거 형 유효성 검사
create_table :shippings do |t|
t.column :status, :integer, default: 0
end
내 모델 :
class Shipping < ActiveRecord::Base
enum status: { initial_status: 0, frozen: 1, processed: 2 }
end
그리고 내가보기에이 비트가 (에 대한 간단한 양식을 사용) :
이 내 테이블 마이그레이션 관련 부분입니다 내가 양식을 작성 제출하고 내가 얻을이 유효성 검사 오류 액션 불을 만들 때
def create
@shipping = Shipping.create!(shipping_params)
if @shipping.new_record?
return render 'new'
end
flash[:success] = 'Shipping saved successfully'
redirect_to home_path
end
private
def shipping_params
params.require(:shipping).permit(... :status)
end
그래서 : 그래서 내 컨트롤러
= f.input :status, :as => :select, :collection => Shipping.statuses, :required => true, :prompt => 'Please select', label: false
그래서
'1' is not a valid status
을 나는 문제가 있음을 알고 있다고 생각 데이터 유형이므로이 비트를 모델에 추가했습니다.
그러나 이것은 아무 것도하지 않는 것 같은데 어떻게 해결할 수 있습니까? 비슷한 경험을 가진 사람이 있습니까?