jackie-do / it-background-ruby-on-rails-fast-training

Training Ruby on Rails for IT Student in short time
GNU General Public License v3.0
5 stars 2 forks source link

[K000][Question] Hỏi về code Ruby #8

Open nhanmvptit opened 4 years ago

nhanmvptit commented 4 years ago

Bài tập số 3 của bài 9.

# app/controllers/posts_controller.rb
def index
  # Check if the URL requests a date.
  if Date.valid_date?(params[:year].to_i, params[:month].to_i, params[:day].to_i)
    start_date = Date.parse("#{params[:day]}.#{params[:month]}.#{params[:year]}")
    end_date = start_date
  # Check if the URL requests a month
  elsif Date.valid_date?(params[:year].to_i, params[:month].to_i, 1)
    start_date = Date.parse("1.#{params[:month]}.#{params[:year]}")
    end_date = start_date.end_of_month
  # Check if the URL requests a year
  elsif params[:year] && Date.valid_date?(params[:year].to_i, 1, 1)
    start_date = Date.parse("1.1.#{params[:year]}")
    end_date = start_date.end_of_year
  end

  if start_date && end_date
    @posts = Post.where(published_on: start_date..end_date)
  else
    @posts = Post.all
  end
end

Bài tập: Comment route mới, thay vì dùng bound parameters thì hãy dùng query string để lọc ngày tháng tương tự ? ở đây là mình chỉ thay đổi bên file routes.rb thôi hả Huy hay là cả trong action Index nhỉ? chắc là cả 2 nhỉ?

jackie-do commented 4 years ago

hiện tại bạn hiểu query string là gì chưa ?