ユーザーが時間を選択または入力できるようにしたい(例:「朝の歯磨きにどのくらいの時間を費やしますか?」)。「CREATE」または「UPDATE」アクションで、時間を変換したいと思います。データベースへのポスト/プットの数秒前にフロートします。
現在、モジュールにメソッドがあります(モジュールの使用方法を学習しようとしています)が、この状況に適しているかどうかはわかりません...
Float-to-Time for View(作品)
<%= MyModule.float_to_time(task.task_length) %>
モジュール
module MyModule
def self.float_to_time(secs) # task.task_length (view)
...
...
end
def self.time_to_float(tim) # :task_length (controller)
m = tim.strftime("%M").to_f
s = tim.strftime("%S.%2N").to_f
t = ((m*60) + s)
return t.round(2)
end
end
コントローラ
def create
# "time_to_float" (Convert task_time to seconds float)
# Create new task after conversion
@task = Task.new(params[:task])
respond_to do |format|
if @task.save
format.html { redirect_to @task, notice: 'Task was successfully created.' }
format.json { render json: @event, status: :created, location: @task }
else
format.html { render action: "new" }
format.json { render json: @task.errors, status: :unprocessable_entity }
end
end
end
dbへの投稿(または配置)の前に変換を行うにはどうすればよいですか?
また、これらのメソッドをapplication_controllerに移動する必要がありますか、それともモジュールは問題ありませんか?
-助けてくれてありがとう。