因此,我建立了两种方法,一种将输入的日期转换为整数。然后将整数转换为日期(总是返回星期一)。
日期为整数:
def week_number(user_date)
start_date = Time.parse('Jan 6 2019 12:01')
start_year = start_date.year
alpha = Date.parse(user_date.try(:strftime, ("%B %e, %Y")))
if alpha.year < start_year
errors 'cannot be before 2019'
elsif alpha.year > start_year
beta = alpha.year - start_year
over_current_year = beta * 52
above_c = alpha.cweek + over_current_year
above_c
else
alpha.cweek
end
end
整数到日期(返回星期一):
def week_date(user_number)
start_date = Time.parse('Jan 6 2019 12:01')
start_year = start_date.year
if user_number < 1
errors 'cannot be less than 1'
elsif user_number > 52
divided_number = user_number % 52
year_return = start_year + divided_number
date_return = Date.commercial(year_return, divided_number, 1)
date_return.monday
else
user_return = Date.commercial(2019, user_number, 1)
user_return
end
end
因此,我希望这两种方法可以在应用程序中的任何位置使用。我该如何构建无需使用模型即可直接使用这两种方法的表单?
我尝试将它们扔进TravelController中,将路线更新为:
root to: 'travel#index'
resources :travel do
post :week_number, on: :collection
post :week_date, on: collection
end
然后该表单执行以下操作:
<%= form_with(url: week_number_travel_index_path, method: 'get', local: true) do %>
<%= label_tag :user_date, 'Enter Date'%>
<%= datetime_field_tag :user_date, nil, placeholder: Time.now.strftime("%b %e %Y %l:%M"), class: 'form-control' %>
<%= button_tag 'Find Week Number', class: 'btn btn-success btn-block' %>
<% end %>
因此它应该从输入中获取值。我正在努力的是...正确的方法吗?然后如何显示该值?我以为我可以做<%= week_number(user_date)%>,但是我最终得到
未定义的局部变量或方法“ user_date”