有没有一种方法可以对加载到Rails中的表单输入中的数据调用方法?(特别是text_field)



我使用的是Rails 3.0.5,由于这个问题中指定的原因,我需要在text_field输入上调用一个utc_to_local方法来获取日期时间。

我尝试过以各种方式直接在视图中调用该方法(作为起点(,但似乎找不到神奇的组合(以前从未在表单字段上调用过方法(。

/events/edit.html.erb(完整文件(:

<h1>Edit This Event</h1>
<%= form_for(@event) do |f| %>
    <%= render 'fields', :f => f %>
    <div class="actions">
        <%= f.submit "Update Event" %>
    </div>
<% end %>

events/_fields.html.erb(仅相关行:(

<div class="field">
    <%= f.label      :time_start, "Start Time" %><br />
    <%= f.text_field  :time_start, :class => "datetimefield" %>
</div>

直接回答:

<%= f.text_field  :time_start, :value => f.object.time_start.try(:method_name) :class => "datetimefield" %>

但是。。。为什么不使用in_time_zone

Time.now.in_time_zone("Eastern Time (US & Canada)")

这将导致创建一个应用程序助手:

def time_zoned(string)
  return nil if string.nil?
  begin 
    time = Time.parse(string)
  rescue
    return nil
  end
  time.in_time_zone("Eastern Time (US & Canada)")
end

在你看来:

<%= f.text_field  :time_start, :value => time_zoned(f.object.time_start) %>

相关内容

  • 没有找到相关文章

最新更新