Ste*_*Mai 7 ruby ruby-on-rails formbuilder
我正在开展一个每周都有重复活动的项目.因此,我以非传统方式使用多个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
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是工作日选择实际上没有默认的选定值.这在我的创建页面上工作正常,但在编辑页面上没有.dow是一个符号,它引用调用模型中的字段,其中星期几字符串是"星期一","星期二"等.如何使用dow将该值从调用模型中拉出.
self[dow]
Run Code Online (Sandbox Code Playgroud)
不起作用,因为这是一个不同的类.
有任何想法吗?有些不同?
ken*_*nyc 13
如果您在FormBuilder中,那么只需使用'object'变量即可访问当前对象.
例如:
在:edit.html.erb
<% form_for(@event) do |form| %>
<%= form.custom_datetime_select(:event_starts_at) %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
在您的FormBuilder中
def custom_datetime_select(field, options = {})
start_time = object.send(field)
...
end
Run Code Online (Sandbox Code Playgroud)
这两个object和object_name针对你,当你调用设置form_for.
有关actionpack/lib/action_view/helpers/form_helper.rb详细信息,请参阅
| 归档时间: |
|
| 查看次数: |
4127 次 |
| 最近记录: |