0

私のレール_formコード:

<%= simple_form_for @admin_event, :html => { :class => 'main-form' } do |f| %>
  <%= f.input :time_of_event, :format => l(:time_of_event, '%d %b. %Y'), :as => :string, :label => 'Hora', :input_html => { :class => 'thin', :placeholder => 'eg: 20:30' } %>
<% end %>

エラーメッセージが表示されます:

Cannot convert symbol to string.

_formタイム コンバーターを使用してこのフィールドを常に表示するように設定するにはどうすればよい2000-01-01 19:30:00.000000です19:30か?

4

2 に答える 2

7

これを次の方法で解決しました: ApplicationHelper にメソッド "time_format" を作成しました:

def time_format(datetime)
  datetime.strftime('%H:%M') unless datetime.blank?
end

そしてフォームで:

<%= f.input_field :start_time, :as => :string, :value => time_format(f.object.start_time) %>

これがあなたを助けることを願っています。

于 2013-10-20T22:11:51.393 に答える
0

モデルに attr_accessor を追加し (たとえば、formatted_time)、このフィールドを使用して atted 時刻から取得して設定することができます。保存する前に、@formatted_time の値を解析して time_of_event フィールドに適用できます。

于 2013-06-12T05:40:36.677 に答える