Я бы создал отдельный маршрут и сохранил константу пути ссылки:
# routes.rb
resources :workouts do
get :todays, on: :collection
end
# app/controllers/workouts_controller.rb
class WorkoutsController < ApplicationController
# ...
def todays
@workout = Workout.where(scheduled_on: Date.today).first
# you can choose between redirecting
redirect_to @workout
# or rendering
render :show
end
end
# in the view
<%= link_to 'Latest Workout', todays_workouts_path %>
Причина, по которой я бы создал отдельный маршрут вместо "динамической" ссылки, заключается в возможности кэширования ответа в обратном прокси-сервере.для исполнения.И имея логику сегодняшней тренировки в контроллере, а не в представлении.