首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails Formbuilder问题

Rails Formbuilder问题
EN

Stack Overflow用户
提问于 2009-06-01 02:22:20
回答 2查看 4.1K关注 0票数 7

我正在做一个项目,有重复的,每周的活动。因此,我以一种非传统的方式使用了几个DateTime字段。我正在做的是一个FormBuilder,它创建了一个字段,用于输出工作日的select和时间的select。我使用的是我在网上找到的一个12小时插件,所以它是有效的:

代码语言:javascript
复制
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将该值从调用模型中提取出来。

代码语言:javascript
复制
self[dow]

不起作用,因为这是在不同的类中。

有什么想法吗?有什么不同吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-01 10:34:38

如果你在一个对象中,那么你可以通过简单的使用‘FormBuilder’变量来访问当前对象。

例如:

地址: edit.html.erb

代码语言:javascript
复制
<% form_for(@event) do |form| %>
  <%= form.custom_datetime_select(:event_starts_at) %>
<% end %>

在你的FormBuilder中

代码语言:javascript
复制
def custom_datetime_select(field, options = {})
  start_time = object.send(field)
  ...
end

当您调用form_for时,会为您设置objectobject_name

有关更多详细信息,请参阅actionpack/lib/action_view/helpers/form_helper.rb

票数 13
EN

Stack Overflow用户

发布于 2009-06-01 04:00:28

这对你来说应该行得通。

代码语言:javascript
复制
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
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/933356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档