Rails Formbuilder 问题
我正在开展一个每周都会发生重复事件的项目。 因此,我以非传统方式使用多个日期时间字段。 我正在研究的是一个 FormBuilder,它创建一个字段,输出工作日的选择和时间的选择。 我正在使用我在网上找到的一个十二小时插件,所以它可以工作:
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]
不起作用,因为这是在不同的班级中。
有任何想法吗? 有些不同?
I'm working a project that has recurring, weekly events. Thus, I use several DateTime fields in a nontraditional way. What I'm working on is a FormBuilder that creates a field that outputs a select for a weekday, and a select for time. I'm using a twelve-hour plugin I found online, so that works:
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
The problem I'm having is that the weekday select doesn't actually have a default selected value. This works fine on my create pages, but not on the edit pages. dow is a symbol that references the field in the calling model where the day of the week string is "Monday", "Tuesday", etc. How can I pull that value out of the calling model using dow.
self[dow]
Doesn't work since this is in a different class.
Any ideas? Something different?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您在 FormBuilder 中,则只需使用“object”变量即可访问当前对象。
例如:
在:edit.html.erb
在 FormBuilder 中,
当您调用
form_for
时,会为您设置object
和object_name
。有关更多详细信息,请参阅actionpack/lib/action_view/helpers/form_helper.rb。
If you're inside a FormBuilder, then you can access the current object by simply using the 'object' variable.
Ex:
In: edit.html.erb
In your FormBuilder
Both
object
andobject_name
are set for you when you callform_for
.See
actionpack/lib/action_view/helpers/form_helper.rb
for more details.这应该对你有用......
This should work for you ...