ruby-on-rails - Ruby on Rails - 多参数分配和 attr_accessor 和 12_hour_time

标签 ruby-on-rails attr-accessor

好的,我正在慢慢掌握这一点,但我需要更多帮助。

我在 View 中使用了 time_select,因此我正在处理多参数分配。查看。

<%= pt.time_select :time, :twelve_hour => true, :minute_step => 5 %>

但我正在做一些顽皮的事情并将它与不在数据库中的属性一起使用:

attr_accessor time

因此,由于它无法查看数据库,因此无法拼凑多参数赋值应该是什么,因此出现以下错误:

1 error(s) on assignment of multiparameter attributes

因此我正在使用我找到的信息 here :

  composed_of :time,
            :class_name => 'DateTime',
            :mapping => [%w(DateTime to_s)],
            :constructor => Proc.new{ |item| item },
            :converter => Proc.new{ |item| item }

其他有用的链接:rubyonrails.org | apidock.com

这消除了错误,但我认为现在的问题是我正在使用的插件无法正常运行。我正在使用 http://code.google.com/p/rails-twelve-hour-time-plugin/ .目标是,我试图让时间选择有 3 个下拉菜单:hh:mm am/pm

所以问题是:我需要如何调整我的 composed_of 方法 才能让它被插件正确转换?或者有更好的方法来解决这种疯狂吗?

我不确定我需要什么映射器/构造器/转换器。现在对象保留小时和分钟,除了小时没有转换为 24 小时(我认为插件应该处理这个问题)。

最佳答案

问题是我没有正确阅读这篇文章。我应该一直在使用时间模型。

  composed_of :time,
            :class_name => 'Time',
            :mapping => [%w(Time to_s)],
            :constructor => Proc.new{ |item| item },
            :converter => Proc.new{ |item| item }

看起来这是一个常见问题。有关它的更多信息,请查看此 link .那里给出的建议是:

class Whatever < ActiveRecord::Base
  ...

  attr_accessor :arrival_time
  columns_hash["arrival_time"] = ActiveRecord::ConnectionAdapters::Column.new("arrival_time", nil, "time")
end

我仍在解决错误,但当我得到一些工作时我会更新它。

关于ruby-on-rails - Ruby on Rails - 多参数分配和 attr_accessor 和 12_hour_time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6037985/

相关文章:

ruby - 邮件程序无法访问用户模型中的reset_token

ruby-on-rails - 多态 has_and_belongs_to_many

sql - COUNT 的 PostgreSQL 值乘以一个数字

ruby-on-rails - 使用 TinymceSpellcheck 时出现 ArgumentError

ruby - 访问器方法已定义但不起作用

ruby - 在类 << self 中使用 attr_accessor 的类变量

ruby-on-rails - Controller 中的 attr_accessor 用于存储权限

ruby-on-rails - 测试 Rails API 以使用 devise 进行注册。错误 : "Missing ' confirm_success_url' parameter.“

ruby-on-rails - Drupal 没有 "Community Plumbing"了?我的下一步发展该怎么做?

ruby - 如何为动态实例变量设置 attr_accessor?