加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails Formbuilder问题

发布时间:2020-12-17 04:21:42 所属栏目:百科 来源:网络整理
导读:我正在开展一个每周都有重复活动的项目.因此,我以非传统方式使用多个DateTime字段.我正在做的是一个FormBuilder,它创建一个输出工作日选择的字段,并选择一个时间.我正在使用我在网上找到的12小时插件,因此可行: class ActionView::Helpers::FormBuilder def
我正在开展一个每周都有重复活动的项目.因此,我以非传统方式使用多个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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读