我正在修改其他人的项目,该项目允许用户提交内容以立即发布或预定发布。有一对单选按钮可以选择它,如果选择了“计划”的单选按钮,则由 javascript 启用一个日期时间字段
<%= f.hidden_field :scheduled_state %>
<%= f.radio_button :immediate_or_scheduled, :immediate, :checked => "checked", :id => "pub_imd" %>
<%= f.radio_button :immediate_or_scheduled, :scheduled , :id => "pub_sch" %>
<label>Date/Time:</label>
<%= f.datetime_select :scheduled_start,
{:include_blank => false,
:default => 3.days.from_now,
:start_year => Time.now.year} %>
我不完全清楚隐藏字段的用途,这是我的下一个调查点。无论如何,问题是提交表单时,有时参数没有提交。我会复制 mongrel 输出,但你看到的只是没有 :scheduled_start(1i) => 2010。它并没有说它是 nil,它只是没有那个参数。
真正让我感动的是,这不是一个一致的问题——我可以在预定日期连续提交三次,然后它就会失败。我无法与特定日期相关联——有些日期似乎比其他日期更混乱,但没有一个是真正一致的。
我尝试的修复-
最初 :include_blank 是真的,我想也许它没有正确发送。无关紧要。
尝试关闭禁用/启用选择字段的 javascript,但无关紧要。
尝试使用纯 html 对表单进行硬编码,没有任何区别。
尝试为我自己的参数添加自定义 rails select_tags,然后在控制器中将它们拾取并将它们添加到参数中。仍然没有帮助,并打破了立即发布选项。
我很困惑,如果有人有新的方向,我可以研究一下,那就太好了。谢谢!