Rya*_*nJM 3 ruby-on-rails attr-accessor
好的,我正在慢慢掌握这一点,但我还需要一些帮助.
我在我的视图中使用了time_select,因此我正在处理多参数分配.校验.
<%= pt.time_select :time, :twelve_hour => true, :minute_step => 5 %>
Run Code Online (Sandbox Code Playgroud)
但我正在做顽皮的事情,并使用不在数据库中的属性:
attr_accessor time
Run Code Online (Sandbox Code Playgroud)
因此,因为它无法查看数据库,所以它无法拼凑多参数分配应该是什么,因此我收到以下错误:
1 error(s) on assignment of multiparameter attributes
Run Code Online (Sandbox Code Playgroud)
因此,我使用,我发现的信息在这里:
composed_of :time,
:class_name => 'DateTime',
:mapping => [%w(DateTime to_s)],
:constructor => Proc.new{ |item| item },
:converter => Proc.new{ |item| item }
Run Code Online (Sandbox Code Playgroud)
其他有用的链接:rubyonrails.org | apidock.com
这消除了错误,但现在问题是我正在使用的插件无法正常运行,我想.我在用http://code.google.com/p/rails-twelve-hour-time-plugin/.目标是,我正在努力让时间选择有3个下降hh:mm am/pm.
所以问题是:我如何调整我composed_of method的顺序才能通过插件正确转换?或者这种疯狂有更好的方法吗?
我不确定我需要什么映射器/构造器/转换器.现在,对象保持小时和分钟,除了小时没有转换为24小时(插件应该照顾,我想).
问题是我没有正确地遵循这篇文章.我应该一直使用时间模型.
composed_of :time,
:class_name => 'Time',
:mapping => [%w(Time to_s)],
:constructor => Proc.new{ |item| item },
:converter => Proc.new{ |item| item }
Run Code Online (Sandbox Code Playgroud)
看起来这是一个常见的问题.有关它的更多信息,请查看此链接.给出的建议是:
class Whatever < ActiveRecord::Base
...
attr_accessor :arrival_time
columns_hash["arrival_time"] = ActiveRecord::ConnectionAdapters::Column.new("arrival_time", nil, "time")
end
Run Code Online (Sandbox Code Playgroud)
我还在研究bug,但是当我得到一些工作时我会更新它.