ruby-on-rails – Rails中多个表单复选框的数据库结构
我有一个我正在研究的rails应用程序,它允许用户创建一个计划.在这样做时,他们应该能够选择一周中哪一天发生事件.我计划在表单中执行此操作的方式是每个工作日旁边的复选框,如下所示:
<%= f.check_box :monday %> <%= f.label :monday %> <%= f.check_box :tuesday %> <%= f.label :tuesday %> <%= f.check_box :wednesday %> <%= f.label :wednesday %> 等等… 但是,我发现这可能不是一种非常有效的处理方法,将每个日期作为布尔值存储在数据库中.在’show’视图中??显示日期非常困难;我必须做点什么 Event Dates: <% if @event.monday? %> Monday <% end %> <% if @event.tuesday? %> Tuesday <% end %> <% if @event.wednesday? %> Wednesday <% end %> 这对我来说似乎不太理想. 我的另一个想法是在数据库中创建一个包含所有事件日期的字符串列,使用attr_accesors和模型方法创建字符串after_create.但是,在这种情况下,用户将如何编辑事件? 它让我思考,这里必定有一些我不了解的最佳实践(我以前从未试图用这种结构创造一些东西). 有什么建议? 谢谢! 解决方法
不要这样做:
这样的事情只会导致像每天查询一样可怕的丑陋问题;例如,如果您将您的日期存储在一个列中,您将如何计算星期一可用的事件数量? 相反,保留你的七个布尔值,并为你的模型添加一个简单的方便方法,以一些更方便的格式返回日期.也许这样的东西: def days Date.DAYNAMES.map { |d| read_attribute(d.downcase) } end 然后你可以简单地在视图中迭代@ event.days并将日期数字映射到名称: <% @event.days.each_with_index do |on_day,i| %> <% if on_day %> <%= Date.DAYNAMES[i] %> <% end %> <% end %> 当然,日期方法的具体细节以及您在ERB中如何处理它将取决于您的具体情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- C#导出生成excel文件的方法小结(xml,html方式)
- ruby-on-rails – Ruby on Rails 4 – 重复的回形针验证消息
- c# – 如何使用TFS build 2015运行自动化硒测试?
- AJAX(XMLHttpRequest)进行跨域请求方法详解
- ruby-on-rails – 当尝试使用Rails和PostgreSQL生成模型时,
- 如何在C#Windows窗体项目中设置应用程序关闭模式?
- Cocos Creator 使用protobufjs
- jQuery+ajax简单实现文件上传的方法
- c# – BinaryReader.PeekChar()读取多少位?
- c – 如何解决Boost :: BGL模板< - >类循环依赖?