繁体   English   中英

嵌套模型,表单和date_select FormHelper集成

[英]Nested models, forms and date_select FormHelper integration

我在嵌套模型上关注了Ryan Bates 教程 我的几个嵌套模型都有与之关联的日期。 在我的迁移中,它们实际上是“日期”类型。

我尝试过的一些事情和我遇到的问题

  1. date_select - 可以处理表单对象前缀,但不能处理嵌套模型属性
  2. select_year - 不适用于表单对象
  3. 通过使用(Time.now.year - 100)..(Time.now.year)填充年份的常规选择并覆盖attr访问器start_date和end_date以获取select中的值以形成日期并将其传回。 仅适用于创建,而不适用于更新
  4. 通过使用(Time.now.year - 100)..(Time.now.year) 工作,将字段的数据类型更改为字符串并使用填充年份的常规选择,但在编辑时,它不会重新填充选择当前信息

任何想法或提示都会有所帮助。

编辑:before_save似乎更有前途但由于某种原因,值在保存之前进入nil但在日志转储中可见

编辑2:有趣的是,这似乎只是'更新'上的问题,而不是'创建'。

这是解决方案:

<% new_or_existing = task.new_record? ? 'new' : 'existing' %>
  <% prefix = "project[#{new_or_existing}_task_attributes][]" %>

<% fields_for prefix, task do |t| -%>
   <%= t.date_select(:start_date, :index => task.id || nil) %>
<% end -%>

以下是其工作原理的解释:

http://agilerails.wordpress.com/2009/03/11/date_select-time_select-doesnt-work-with-auto_prefix-object/

也许这可以与formtastic宝石一起工作......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM