- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的表单中有以下代码。
<%= f.datetime_select(:date_time, :prompt => {:day => 'Day', :month => 'Month', :year => 'Year'}, :start_year => Date.today.year, :end_year => Date.today.year + 2, :minute_step => 15, :include_blank => false) %> if either one is blank.
当其中一个字段留空时,我得到:
1 error(s) on assignment of multiparameter attributes
传递的参数是:
{"utf8"=>"✓",
"authenticity_token"=>"kQpfsj5RxnDtxkvBdwPEFnX1fY6euKnMQeDRAkvJvIE=",
"event"=>{"description"=>"",
"venue"=>"",
"street"=>"",
"city"=>"",
"country_id"=>"",
"date_time(1i)"=>"",
"date_time(2i)"=>"",
"date_time(3i)"=>"",
"date_time(4i)"=>"00",
"date_time(5i)"=>"00",
"ticket_url"=>""},
"x"=>"94",
"y"=>"12"}
有人知道为什么会这样吗?
在这个 link 似乎有一个“脏”修复, 但也许 Rails 3 中有更好的解决方案?
最佳答案
基督徒。这是 Rails 中的一个错误,它检查数据库以推断多参数属性所需的类型。我的猜测是您的“date_time”属性与数据库中的时间列没有关联。
我最近解决了这个问题,我想要一个非数据库属性来接受多参数属性,这是我能想到的最好的解决方案:
我发现自己想要设置一个 attr_accessor
来处理通过 f.datetime_select
助手在 form_for
标签中将日期传递给我的模型.所以这就是我所拥有的:
型号:
attr_accessor :my_time
查看:
<%= f.datetime_select :my_time %>
不幸的是,当我提交我的表格时,我得到了这个:
1 error(s) on assignment of multiparameter attributes
事实证明,这实际上是一个 Rails 错误,已提交票证。与此同时,我们如何进行这项工作?我能找到的唯一有吸引力的解决方案是使用 composed_of
作为 attr_accessor
的替代品。所以...
型号:
composed_of :my_time,
:class_name => 'Time',
:mapping => %w(Time to_s),
:constructor => Proc.new{ |item| item },
:converter => Proc.new{ |item| item }
我对 composed_of
方法几乎一无所知,因此您可能应该自己阅读它,但我所知道的是它为给定的实例变量创建了读取器和写入器,并且更重要的是,setter 接受多参数属性。我如何选择选项:
class_name:我们期望的类名。在这种情况下,时间
映射:第一个参数是类,第二个参数似乎适用于类实例响应的任何方法。我选择了to_s
构造函数:不太确定这应该如何工作。似乎在 @my_time
为 nil
时被调用。
转换器:不太确定这应该如何工作。似乎是从 my_time= 时调用的,但似乎并未应用于批量分配。我在使用此解决方案时遇到的一个问题是时间设置为 UTC 而不是环境的时区。所以很遗憾,我们不能直接使用 my_time,而是需要将其转换为正确的时区:
Time.zone.parse(my_time.to_s(:number))
关于ruby-on-rails - datetime_select 的多参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4711948/
当将 用于"new"对象表单时,如何设置选项以不选择默认日期而是选择 nil/null 值?相关模型中的字段可以选择为空,但默认情况下 datetime_select 控件没有空选项。 最佳答案 我
我的事件可以在不同的时区。 在编辑时,我希望时间和日期与该事件的时区一起显示。 但是,当我点击 edit 时,datetime_select 始终显示用户时区的时间(与事件之一相反)。 示例: 事件于
我的表单中有以下代码。 {:day => 'Day', :month => 'Month', :year => 'Year'}, :start_year => Date.today.year, :e
我在 Web 应用程序上使用 Rails。 我想知道是否可以告诉 datetime_select 在分钟下拉列表中只有两个选项?选项 00 和 30。 我有以下代码: Date to Run tru
我在我的应用程序中使用了datetime_select,我想使用这样的时间和日期顺序: HH MM - DD MM YYYY 但我不知道该怎么做。 :order 选项只允许包含 :day, :mont
我正在使用 Rails 3.1 并且第一次使用 datetime_select .我想将分钟选择框指定为 15 分钟间隔而不是 1 分钟间隔: true, :start_minute => [0
有没有办法限制 Rails 中的 datetime_select,使其只显示特定的时间,例如所以唯一的选择是下午 5 点到晚上 10 点?目前只有这个:` 30 %>` 最佳答案 这将为您提供下午
我想知道是否有办法将 datetime_select 的 24 小时制转换为 12 小时制? 最佳答案 Rails 3.1 内置了 am/pm 选项: true, :start_year => 20
当我在表单中使用时,它会生成如下HTML: #year #month #day #hour #minute 提交该表单后,将收到somedate1(i)值: {"date1(1i)
我需要一些帮助。我有这个代码: 2011 %> 除了时区外,输出都很好...时区是 utc,我想将他更改为其他时区。我该怎么做?我需要在初始值设定项中做些什么?我在网上找到了一些东西,但它们在 ra
我们在 Rails 中使用 datetime_select,但我真的很难处理它的样式。 出于几个原因,我想在新行上显示小时和分钟,而不是与日期/月/年内联。 HTML(移除选项元素以简化此处的外观):
我尝试使用大小、宽度和高度来更改 datetime_select 的大小,但它似乎不起作用它们是如此之大,而它们上面只有一个数字? [:day, :month, :year, :hour,:minu
我在让 datetime_select 在我的表单中工作时遇到了一些问题。我可以将其设置为设置默认日期或允许提示,但不能同时设置。我真正想要的是类似 2011 June 18 hour m
我在我的一个表单中使用 Rails 助手 datetime_select。我目前需要将 day、year、hour 和 minute 的下拉列表更改为文本框验证。有没有一种方法可以指定我想要这些字段的
是否有一种简单的方法可以选择不在使用 datetime_select、date_select 或 time_select 的 Rails 表单中指定日期或日期时间>?默认情况下,字段设置为当前日期/时
我有一个看起来像的表格 = form.datetime_select :due_at = form.time_zone_select :time_zone, ActiveSupport::TimeZo
我正在尝试将用户选择的开始日期和结束日期与当前时间进行比较,以防止用户选择过去的时间。它可以工作,除非你必须选择一个时间,在我的例子中,提前 4 小时才能通过验证。 查看: datetime_sele
这是具有多个选择的选择,我不确定如何以这种方式将每个选择定位到一个选择。 10%> 最佳答案 您可以在 documentation 中找到它 datetime_select(object_name,
每次我尝试在 View 中使用 Datetime_select 时,应用程序都会引发属性错误。 Mongoid::Errors::UnknownAttribute: Problem:
在Rails 3中,是否可以使用datetime_select并显示显示12小时上午/下午选项而非24小时选项的小时数? 最佳答案 如果有人偶然发现了这个问题,Rails 3.2的答案是: 关于r
我是一名优秀的程序员,十分优秀!