【发布时间】:2019-03-28 12:49:07
【问题描述】:
**Controller**
def today_attendance
@date = params[:date]?Date.parse(params[:date]): Date.today
@attendances = Attendance.joins(:user).where(date: @date).select(:email,
:password, :date, :status)
end
**Views** (Just changed from GET to POST method)
<%= button_to '<', attendance_path(date: @date - 1.day) %>
<%= "#{@date.strftime("%A")}, #{@date.strftime("%d")} #{@date.strftime("%B")} #{@date.year}" %>
<%= button_to '>', attendance_path(date: @date + 1.day) %>
**Routes**
resources :users do
resources :attendances
end
get 'today_attendance', to: 'attendances#today_attendance', as: 'today_attendance'
resource :calendar, only: [:today_attendance], controller: :attendances
post 'today_attendance', to: 'attendances#today_attendance', as: 'attendance'
你好,我是新来的@Rails。
目前我有一个与日期相关联的每日出勤表。在我的页面上显示“下一天”和“前一天”按钮,将我的出勤率从今天带到其他日子。
我当前显示的网址是:http://localhost:3000/today_attendance
每当我点击按钮时,它都会让我例如http://localhost:3000/today_attendance?date=2019-03-29
问题:如何将此页面重定向回http://localhost:3000/today_attendance,以便导出到 .xls 的文件可以读取/打印出不同日的出勤情况?
【问题讨论】:
-
所以无论用户点击
Next Day还是Previous Day,您都希望保持相同的网址(localhost:3000/today_attendance)? -
是的,这是我的意图。
-
那么你不应该使用
GET请求,而应该使用POST或者做ajax请求。 -
是否可以使用 POST 作为重定向而不是更新模型?我不希望在查看“第二天”和“前一天”出勤率时更新任何参数。
-
当然,一切皆有可能。问题是 - 查询参数 (localhost:3000/today_attendance?date=2019-03-29) 有什么问题。它不应该破坏你的代码。此外,它还准确地告诉您访问此页面时可以期待什么。如果您将使用 POST 请求,则无法共享特定日期的出席链接(您必须提交表单)。
标签: ruby-on-rails routes export xls