【问题标题】:RoR: How to show a due day instead of due date?RoR:如何显示到期日而不是到期日?
【发布时间】:2023-04-05 10:44:01
【问题描述】:

我的应用程序包含带有 Gmail 样式 div 的移动视图。每个 div 都有一个主题、名称和截止日期。

截止日期列是一个正常的日期时间值。

我要做的是让视图中的第一个条目显示为过去 6 天的天数,然后将其余条目显示为日期时间。

例如:

星期一 周二 星期三 星期三 星期四 周五 2016/11/04 2016/11/03 .....

等等

如何才能最好地实现这一目标?我认为我不需要发布此问题的代码,但如果需要,我会发布。

谢谢!

编辑

不工作...

在视图中...

<font size="1"><strong>Due:</strong> <%= homework.formatted_date(due) %></font>&emsp;&ensp;

在 ApplicationController...(不确定我的语法是否正确...)

helper_method :formatted_date

def formatted_date(due)
  if (Date.today - due).abs < 6
    due.strftime('%A')
  else
    due.strftime('%Y/%m/%d')
  end
end

视图已加载,但日期显示与以前相同...

【问题讨论】:

    标签: ruby-on-rails datetime dayofweek


    【解决方案1】:

    为你的视图做一个助手...把它放在 ApplicationController

    helper_method :formatted_date
    
    def formatted_date(item_date)
      if (Date.today - item_date).abs < 6
        item_date.strftime('%A')
      else
        item_date.strftime('%Y/%m/%d')
      end
    end
    

    然后在您的视图中,而不是显示object_date 字段显示formatted_date(object_date)

    【讨论】:

    • 谢谢,我在 Application Helper 中准确地提出了您的建议,但为 ApplicationHelper:Module 获取了未定义的方法 `helper_method'。在我看来:
    • @Co2 helper_methodcontrollers 中用于使方法可用作视图助手,如果您的方法在 ApplicationHelper 中定义,则不需要。跨度>
    • @SteveTurczyn 感谢您的帮助。它仍然无法正常工作,我已经更新了OP。也许我没有正确遵循?
    • 不不不,是&lt;%= formatted_date(homework.due) %&gt;你创建的方法不是作业对象方法。
    • @SteveTurczyn 非常感谢!它有效 :D 傻我!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多