ruby-on-rails - 如何遍历年和周

标签 ruby-on-rails ruby ruby-on-rails-4

多亏了这样定义的路线,我可以访问数周:

get 'missions/:year/:week' => 'missions#index'

我想显示周和 2 个链接以转到前一周和下一周。

我们需要知道下一周是哪一年。 “cweek”为我提供了正确的周数,但我需要知道年份。

获取下周四的年份似乎可行,但这有点难看。这是我在 missions#index 操作中所做的,这样我就可以获得正确的 url:

@week = params[:week]
@year = params[:year]

@start_date = Date.commercial(@year.to_i, @week.to_i)

# To navigate between weeks
@prev_week = (@start_date - 1.week).cweek
@prev_year = (@start_date - 1.week + 4.days).year

@next_week = (@start_date + 1.week).cweek
@next_year = (@start_date + 1.week + 4.days).year

知道如何做得更好吗?

最佳答案

Date#cweek 返回的周数的正确年份由 Date#cwyear 返回.因此,此方法使其成为与 cweek 一起使用的主要候选者。

# To navigate between weeks
@prev_week = (@start_date - 1.week).cweek
@prev_year = (@start_date - 1.week).cwyear

@next_week = (@start_date + 1.week).cweek
@next_year = (@start_date + 1.week).cwyear

关于ruby-on-rails - 如何遍历年和周,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24576981/

相关文章:

ruby-on-rails - 如何在以文本形式存储在数据库中的 json 字段中使用 Activerecord 进行搜索

ruby-on-rails - 如何仅在扩展不存在时启用它?

ruby-on-rails - Rails 5 Actioncable 没有 channel 的全局消息

ruby-on-rails - 如何在 Ruby 中的 .each 中创建一个散列的散列

Ruby:检查对象是否为零

ruby-on-rails - 在 Amazon S3 carrierwave 上重新上传图片

ruby-on-rails - Monkey-patching Rails 中的 Time 类导致时区困惑

ruby-on-rails - 带有 Bootstrap 分页的 Draper - 未定义的方法 'total_pages'

ruby-on-rails - Active Record 中的“或”运算符?

css - 为不同客户定制的 Rails 应用程序