3

現在、日付エントリ用のテキスト フィールドが 1 つあります。年、月、日を「/」で区切られた 3 つの個別のエントリに分割しようとしています。元のテキスト エントリは次のようになります。

<%= f.text_field :date, :placeholder => 'YYYY/MM/DD' %>

これを 3 つの text_fields に分割し、それらを一緒に追加して、データベースの日付エントリに入れたいと思います。これどうやってするの?

4

3 に答える 3

0

https://github.com/plataformatec/simple_formを使用してみてください

<%= f.input :deadline, :start_year => Date.today.year, :end_year => Date.today.year + 1, :order => [:day, :month, :year] %>

多くのオプションがありますか。

于 2013-05-09T20:48:53.257 に答える
0

必要なフィールドは 1 つだけなので、日付にはテキストフィールドを使用することがよくあります。3 つの異なるフィールドがある場合は、代わりに select を使用することを検討してください。Rails には date ヘルパー メソッドdate_selectがあるため、次のようになります。

<%= f.date_select :date %>

これにより、年、月、日の選択が 1 つ作成されます。http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-date_selectで詳細を読むことができます

于 2013-05-09T21:24:56.773 に答える
0

モデルに 3 つの仮想属性を追加します。

attr_accessor :form_month, :form_day, :form_year

次に、モデルではなくcontrollerに次を入れます。

def create
  # ...
  form_date = [ params[:form][:form_month], \
                params[:form][:form_day]  , 
                params[:form][:form_year] ].join("/")

  @my_model.date = Date.parse(form_date)

  # ... save and return ...
end

各フォーム パラメータの有効性を手動で確認することをお勧めします。Date#parse不完全な日付文字列が与えられた場合、誤った日付を吐き出す可能性があります。

Date.parse "2005/11/4"
# => Fri, 04 Nov 2005

Date.parse "/11/4"
# => Mon, 04 Nov 2013
于 2013-05-09T20:45:15.393 に答える