3

Formtastic1.2.3を使用しています。フォームが読み込まれるときに、現在の日付と時刻がすでに選択されているようにしたい。またはとの組み合わせをたくさん試しましたが、うまくいきませんでした:default:selectedFormtasticのgithubページからでも、その情報を得ることができません。助言がありますか?御時間ありがとうございます!

= form.input :date,:hint => 'Select a date',
             :prompt => {:day => "Day", :month => "Month", :year => "Year"},
             :start_year => Time.now.year
= form.input :time
4

4 に答える 4

1

これは、次のように作成されたときにアクティブレコードオブジェクトに直接値を設定することで行いました。

モデルクラスの場合:

def after_initialize
  self.start_time ||= Time.now
end

次に、フォームが表示されると、すでに時刻が入力され、正しく設定されています。

于 2012-04-26T21:33:43.933 に答える
1

あなたの構文は問題ないように見え、うまくいくはずです(私にとってはうまくいきます)。念のため、:as => :date 制約も追加することをお勧めします。

form.input :date, :as => :date, :hint => 'Select a date',
         :prompt => {:day => "Day", :month => "Month", :year => "Year"},
         :start_year => Time.now.year

Justin French が同じことを議論している Google Groups で、この議論を見つけました。多分それも役立つでしょう。

于 2011-02-28T08:41:46.120 に答える
1

@ジェリコに同意します。を使用するafter_initializeと、トラブルが発生します。コントローラーにアクセスできない (またはアクセスしたくない) 場合の別のオプションは、次のようにすることです。

(f.object.received_on = Time.zone.today) unless f.object.received_on.present?

コントローラーにアクセスしたくない、モデルに触れたくない Active Admin フォームを初期化するために、これを行う必要がありました。

于 2014-08-25T23:14:12.440 に答える