ユーザーが即時公開または予定公開のいずれかでコンテンツを送信できるようにする他の誰かのプロジェクトを修正しています。これを選択するためのラジオ ボタンのペアと、「スケジュール済み」のラジオ ボタンが選択されている場合に 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} %>
隠しフィールドが何のためにあるのか完全にはわかりません。それが次の調査ポイントです。とにかく、問題は、フォームが送信されたときに、パラメーターが送信されないことがあることです。私は雑種の出力をコピーしますが、表示されるのは :scheduled_start(1i) => 2010 がないことだけです。それが nil であるとは言っていません。そのパラメーターがないだけです。
本当に気になるのは、これが一貫した問題ではないということです。スケジュールされた日付を正しく指定して 3 回連続して送信しても、失敗します。私は特定の日付と関連付けることができませんでした.いくつかは他よりも混乱しているように見えますが、本当に一貫しているものはありません.
私の試みた修正-
もともと :include_blank が true になっていて、うまく送信できていないのではないかと思っていました。無関係でした。
選択フィールドを無効/有効にする JavaScript をオフにしようとしましたが、無関係でした。
純粋なhtmlでフォームをハードコーディングしようとしましたが、違いはありませんでした。
自分のパラメーターにカスタム レールの select_tags を入れてみて、コントローラーでそれらをピックアップしてパラメーターに追加しました。それでも役に立たず、即時公開オプションを破りました。
誰かが私が調べることができる新しい方向性を持っているなら、それは素晴らしいことです. ありがとう!