【发布时间】:2020-08-21 15:01:52
【问题描述】:
我有一个包含 72 个时间段的页面,每个时间段旁边都有一个单选按钮,用于表示可用/不可用。
我希望医生能够选择他们是否可用,然后在完成后单击“更新”。
这意味着表单必须接受所有 72 条记录。
我(认为)我可以通过一些非常低级的编程来解决这个问题。但我不知道'rails way'是什么?
到目前为止我所知道的
- 建议here不要使用
form_for,而是使用form_tag
我尝试过的
如果它不好(可能是这样),请不要使用这个想法。但我的想法是首先在接下来的 3 天内生成所有可能的时间
time_now = Time.now
current_time = time_now
three_days = time_now + 3.days
hours = []
(current_time.beginning_of_hour.to_datetime.to_i .. three_days.beginning_of_hour.to_datetime.to_i).step(1.hour) do |date|
hours << Time.at(date)
end
@hours = hours
然后,使用这些开始时间作为散列中的键,假设 available: false 作为散列中的值(除非 Availability.where(user: current_user).all 另有说明),并将其传递给视图以设置单选按钮的默认位置,然后医生可以随意更新单选按钮并在完成后提交。
问题是
i) 我不知道这是一个好/坏/丑陋的方法 ii)(主要问题)我将如何为散列中的每个键/值对创建一个带有单选按钮的表单? (一个提交按钮)
注意:到目前为止,我在 rails 中知道的唯一表单是通过 form_for,但我热衷于使用此类表单的最佳实践
【问题讨论】: