我正在做一个项目,有重复的,每周的活动。因此,我以一种非传统的方式使用了几个DateTime字段。我正在做的是一个FormBuilder,它创建了一个字段,用于输出工作日的select和时间的select。我使用的是我在网上找到的一个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我遇到的问题是,weekday select实际上没有默认的选定值。这在我的创建页面上工作得很好,但在编辑页面上就不行了。dow是引用调用模型中的字段的符号,其中星期字符串是“星期一”、“星期二”等。如何使用dow将该值从调用模型中提取出来。
self[dow]不起作用,因为这是在不同的类中。
有什么想法吗?有什么不同吗?
发布于 2009-06-01 10:34:38
如果你在一个对象中,那么你可以通过简单的使用‘FormBuilder’变量来访问当前对象。
例如:
地址: 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。
发布于 2009-06-01 04:00:28
这对你来说应该行得通。
class ActionView::Helpers::FormBuilder
def dow_time(dow_model, time, options={})
rval = select(dowmodel, :dow, DateTime::DAYNAMES)
rval += time_select(time, {:minute_step => 15, :ignore_date => false, :twelve_hour => true})
end
endhttps://stackoverflow.com/questions/933356
复制相似问题