小编Ben*_*ris的帖子

Rails:text_field的人性化日期格式

我有一个birth_date字段,存储为日期时间值.默认的rails形式帮助者吐出一种不太友好的格式,例如"2008-06-10 22:33:19.000000".以下是香草铁路的方式.

<div class="field">
  <%= f.label :birth_date %>
  <%= f.text_field :birth_date, :size=>"20" %>
</div>
Run Code Online (Sandbox Code Playgroud)

我怎样才能简单地应用格式?我试过各种方法,例如strftime应该可行,我想.但是当我尝试以下操作时,我收到了一个错误undefined method 'strftime' for nil:NilClass

<div class="field">
  <%= f.label :birth_date %>
  <%= f.text_field :birth_date, :value=>f.object.birth_date.strftime('%m/%d/%Y'), :size=>"20" %>
</div>
Run Code Online (Sandbox Code Playgroud)

基于其他一些问题/答案,我尝试了以下内容.它适用于非空值,但它是丑陋的代码,并且它不适用于空值(实际上它显示今天的日期).

<div class="field">
  <%= f.label :birth_date %>
  <%= f.text_field :birth_date, :value=> Time.parse(f.object.birth_date.to_s).strftime('%m/%d/%Y'), :size=>"20" %>
</div>
Run Code Online (Sandbox Code Playgroud)

在游戏中,似乎输出f.object.birth_date被视为日期,而不是日期时间.但是,当在text_field(原始,丑陋的格式)中显示时,它包含时间.星期五下午,我对铁轨形式和红宝石日期/时间对象的熟悉程度让我觉得很愚蠢.

任何简单的方法来让我的表单显示空/空白,否则一个友好的日期?

ruby datetime ruby-on-rails

8
推荐指数
1
解决办法
7220
查看次数

Rails:在html.erb中只在非空时显示一行的最佳方法是什么?

第1部分:下面的代码似乎工作正常,但必须有更好的方法来做第二行.这是为了显示用户地址.这很简单,如果地址的第二行有内容,我输出它和换行符.

      <%= @sponsor.address1 %><br />
      <%= raw "#{@sponsor.address2} <br />" unless @sponsor.address2.empty? %>
      <%= @sponsor.city %>, <%= @sponsor.state %> <%= @sponsor.zip %>
Run Code Online (Sandbox Code Playgroud)

有没有一些明显的,更优雅的方式来做到这一点?

第2部分:如果价值也可能为零怎么办?我应该在模型中处理吗?是否有一些简单的方法让模型返回空白而不是nil?

将其嵌入另一个条件似乎太乱了.有人能告诉我完成第1部分和/或第2部分的最佳轨道方式吗?

ruby-on-rails ruby-on-rails-3

4
推荐指数
1
解决办法
1579
查看次数

标签 统计

ruby-on-rails ×2

datetime ×1

ruby ×1

ruby-on-rails-3 ×1