【发布时间】:2011-10-03 09:02:04
【问题描述】:
我正在开发一个允许用户创建计划的 Rails 应用程序。在这样做时,他们应该能够选择事件发生在一周中的哪几天。我计划在表单中执行此操作的方式是每个工作日旁边的复选框,如下所示:
<%= f.check_box :monday %> <%= f.label :monday %>
<%= f.check_box :tuesday %> <%= f.label :tuesday %>
<%= f.check_box :wednesday %> <%= f.label :wednesday %>
等等……
但是,我发现这可能不是一种非常有效的处理方式,将每个日期作为布尔值存储在数据库中。在“显示”视图中显示日期将非常困难;我将不得不做类似的事情
Event Dates:
<% if @event.monday? %>
Monday
<% end %>
<% if @event.tuesday? %>
Tuesday
<% end %>
<% if @event.wednesday? %>
Wednesday
<% end %>
这对我来说似乎不太理想。
我的另一个想法是在数据库中创建一个包含所有事件日期的字符串列,使用 attr_accesors 和模型方法来创建字符串 after_create。但是,在这种情况下,用户将如何编辑事件?
这让我想到,这里一定有某种我不知道的最佳实践(我以前从未尝试过用这种结构创建东西)。
有什么建议吗?
谢谢!
【问题讨论】:
-
如果事件发生在星期几,您可以将其存储为
"1100101"7 个数字 1 - 发生 0- 否 -
@Bohdan,确实如此,但如果我尝试返回并编辑事件,我会遇到麻烦,我希望在进入编辑页面时选中相应的复选框。
-
@Bohdan,很有趣。你能用一个更充实的例子作为答案吗?
标签: ruby-on-rails ruby-on-rails-3 forms database-design checkbox