"RFQ"에 datetime 속성이있는 레일스 앱이 있습니다. 날짜는 형식으로 변경되지만 시간은 항상 15:00로 설정하고 싶습니다.
RFQ를 생성하면 잘 작동하지만 편집하면 00:00:00으로 변경됩니다.
액션 만들기 :
def create
@rfq = Rfq.new(rfq_params)
@rfq.owner = current_user.email
@rfq.due = @rfq.due.change(hour: 15)
respond_to do |format|
if @rfq.save
format.html { redirect_to @rfq, notice: 'Rfq was successfully created.' }
format.json { render :show, status: :created, location: @rfq }
else
format.html { render :new }
format.json { render json: @rfq.errors, status: :unprocessable_entity }
end
end
end
업데이트 조치
def update
@rfq.owner = current_user.email
@rfq.due = @rfq.due.change(hour: 15)
respond_to do |format|
if @rfq.update(rfq_params)
format.html { redirect_to @rfq, notice: 'Rfq was successfully updated.' }
format.json { render :show, status: :ok, location: @rfq }
else
format.html { render :edit }
format.json { render json: @rfq.errors, status: :unprocessable_entity }
end
end
end
생성 후 :
Rfq Load (0.2ms) SELECT "rfqs".* FROM "rfqs" ORDER BY "rfqs"."id" DESC LIMIT 1
=> Wed, 01 Jul 2015 15:00:00 CDT -05:00
편집 후
Rfq Load (0.2ms) SELECT "rfqs".* FROM "rfqs" ORDER BY "rfqs"."id" DESC LIMIT 1
=> Tue, 30 Jun 2015 00:00:00 CDT -05:00
문제는 양식의 값으로 업데이트 하기 전에due
속성을 변경한다는 것 입니다.
대신 다음을 수행해야합니다.
def update
@rfq.owner = current_user.email
@rfq.attributes = rfq_params
@rfq.due = @rfq.due.change(hour: 15)
respond_to do |format|
if @rfq.save
format.html { redirect_to @rfq, notice: 'Rfq was successfully updated.' }
format.json { render :show, status: :ok, location: @rfq }
else
format.html { render :edit }
format.json { render json: @rfq.errors, status: :unprocessable_entity }
end
end
end
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다