は次のように表示します。のRails 3.1 text_fieldのフォームヘルパーとjQuery DatePickerの日付形式
<%= f.text_field :date, :class => "datepicker" %>
javascript関数はjQueryUIの日付ピッカーにそのクラスのすべての入力フィールドを変換します。
$(".datepicker").datepicker({
dateFormat : "dd MM yy",
buttonImageOnly : true,
buttonImage : "<%= asset_path('iconDatePicker.gif') %>",
showOn : "both",
changeMonth : true,
changeYear : true,
yearRange : "c-20:c+5"
})
これまでのところとても良いです。私はレコードを編集することができ、それはDBに正確に日付を永続させます。私の問題は、レコードを再度編集したいときです。フォームがレコードから事前入力されると、 'yyyy-mm-dd'形式で表示されます。 javascriptは、datepickerコントロールで選択された日付のみをフォーマットします。データベースから取得した日付をフォーマットする方法はありますか?どの段階でこれを行うことができますか?
おかげで、 ダニー。
以下の説明でさらに詳しく説明すると、私のフォームはビューと部分的な2つのファイルにまたがって広がっています。ここでビューです:
<%= form_tag("/shows/update_individual", :method => "put") do %>
<% for show in @shows %>
<%= fields_for "shows[]", show do |f| %>
<%= render "fields", :f => f %>
<% end %>
<% end %>
<%= submit_tag "Submit"%>
<% end %>
そして、ここでは_fields
部分図です:
<p>
<%= f.label :name %>
<%= f.text_field :name %>
</p>
<p>
<%= f.date %>
<%= f.label :date %>
<%= f.text_field :date, :class => "datepicker" %>
</p>
コントローラーコード:
def edit_individual
@shows = Show.find(params[:show_ids])
end
私はenvironment.rb
に次のように追加しました:
Date::DATE_FORMATS.merge!(
:default => "%d %B %Y"
)
ビューで@ show.dateを使用すると適切な形式が表示されますが、フォームヘルパーはまだ未加工形式を表示しています。
うん、私はそれを認識しましたが、DBから出てくる日付をどのようにフォーマットするかわかりません。 – codedog
が参考になりました。ヘルパーやモデル側でそれを扱うより洗練された方法があります。 – Jayendra
'@ date'がnilなのでエラーになります。フォームヘルパーによって現在参照されているレコードを取得するにはどうすればよいですか? – codedog