我正在开展一个每周都有重复活动的项目.因此,我以非传统方式使用多个DateTime字段.我正在做的是一个FormBuilder,它创建一个输出工作日选择的字段,并选择一个时间.我正在使用我在网上找到的12小时插件,因此可行:
class ActionView::Helpers::FormBuilder def dow_time(dow,time,options={}) rval = select(dow,DateTime::DAYNAMES) rval += time_select(time,{:minute_step => 15,:ignore_date => false,:twelve_hour => true}) end end
我遇到的问题是工作日选择实际上没有默认的选定值.这在我的创建页面上工作正常,但在编辑页面上没有. dow是一个符号,它引用调用模型中的字段,其中星期几字符串是“星期一”,“星期二”等.如何使用dow将该值从调用模型中拉出.
self[dow]
不起作用,因为这是在一个不同的类.
有任何想法吗?有些不同?
解决方法
如果您在FormBuilder中,那么只需使用’object’变量即可访问当前对象.
例如:
在:edit.html.erb
<% form_for(@event) do |form| %> <%= form.custom_datetime_select(:event_starts_at) %> <% end %>
在您的FormBuilder中
def custom_datetime_select(field,options = {}) start_time = object.send(field) ... end
调用form_for时,将为您设置object和object_name.
有关更多详细信息,请参阅actionpack / lib / action_view / helpers / form_helper.rb.
原文地址:https://www.jb51.cc/ruby/268602.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。