【Rails/MySQL】데이터형을 integer로부터 float로 변경해 number_field로 소수점을 취급할 수 있도록 한다
하고 싶은 일
참고
【Rails】 form_for 의 number_field 로 소수를 입력할 수 있도록 한다
htps : // m / g g / ms / 07f789 b22c7 a7 bf6 a19
마이그레이션을 사용하여 열 추가, 삭제 및 데이터 유형 변경 [내용 메모]
htps : // 이 m/다wn_628/있어 ms/13후64dc6d600에921세3
【Rails】 칼럼의 합계치를 구한다!
htps : // 이 m/토모키치_루 by/있어 ms/8758 아 91566957cfc5429
number_field에서는 정수만 처리할 수 있습니다.
new.html.erb
<%= form_for @count_time do |f| %>
<%= f.number_field :count_hour, class:'input_form' %>
<%= f.submit '登録', class:'input_submit' %>
<% end %>
라는 양식이 있고,
소수점 숫자를 넣으면,
라는 식이기 때문에
new.html.erb
<%= form_for @count_time do |f| %>
<%= f.number_field :count_hour, step: '0.1', class:'input_form' %>
<%# step: '0.1'を追加 %>
<%= f.submit '登録', class:'input_submit' %>
<% end %>
step: '0.1'
를 추가하면 소수점 이하 1위까지의 수치를 취급할 수 있습니다.이 경우 DB에는 정수로만 저장됩니다.
DB의
count_hour
는 integer型
이므로 정수만 저장할 수 있으므로 열 유형을 변경합니다.터미널
$ rails g migration change_data_count_hour_to_count_time
Running via Spring preloader in process 94544
invoke active_record
create db/migrate/20200103074431_change_data_count_hour_to_count_time.rb
열 이름이 count_hour이고 테이블 이름이 count_time입니다.
20200103074431_change_data_count_hour_to_count_time.rb
class ChangeDataCountHourToCountTime < ActiveRecord::Migration[5.2]
def change
change_column :count_times, :count_hour, :float #追記。テーブル名は複数形で
end
end
rails db:migrate
이제 float 유형으로 변경할 수 있었으므로 number_field에서 보낸 소수점 값을 DB에 저장할 수 있습니다.
DB 값을 뷰로 그리기
index.html.erb
<table>
<tr>
<th>日付</th>
<th>時間</th>
</tr>
<% @count_time.each do |count_time| %>
<tr>
<td><%= count_time.created_at.to_date %></td>
<td><%= count_time.count_hour %>時間</td>
</tr>
<% end %>
</table>
sum 메소드를 사용하여 학습 시간의 합계 표시
count_time_controller.rb
class CountTimesController < ApplicationController
def index
@count_time = CountTime.where(user_id: current_user.id).order('updated_at DESC').limit(5)
@count_hour = @count_time.sum(:count_hour)
end
end
sum 메소드의 인수에 열을 지정하여 합계 값을 발행합니다.
완성
요약
일단 이것으로 자신이 처음 상상했던 주요 기능이 완성되었습니다. 개발에 그런 시간이 걸리지 않는 앱이었지만 모르는 것도 배울 수 있었기 때문에 좋았을까라고. 그리고는 생각해 낸 추가의 기능을 개발해 나가려고 생각합니다.
끝
Reference
이 문제에 관하여(【Rails/MySQL】데이터형을 integer로부터 float로 변경해 number_field로 소수점을 취급할 수 있도록 한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/suzy1031/items/7b182f6b126475c69ff6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)