Reputation: 39
I want to know if is possible to refactor the same lines of code but in two differnts methods in the controller.
class CigsController < ApplicationController
def home
Time.zone = 'Amsterdam'
Groupdate.time_zone = 'Amsterdam'
@date_now = Time.zone.now
@day_date_now = @date_now.day
@cigs = Cig.all
@a_r_r_today_cigs = Cig.where(date: Time.zone.now.midnight..Time.zone.now)
end
def index
Time.zone = 'Amsterdam'
Groupdate.time_zone = 'Amsterdam'
@cigs = Cig.all
@a_r_r_today_cigs = Cig.where(date: Time.zone.now.midnight..Time.zone.now)
end
Upvotes: 0
Views: 42
Reputation:
You could use before_action
(https://guides.rubyonrails.org/action_controller_overview.html#filters)
class CigsController < ApplicationController
before_action :set_variables, only: [:home, :index]
def home
@date_now = Time.zone.now
@day_date_now = @date_now.day
end
def index
end
private
def set_variables
Time.zone = 'Amsterdam'
Groupdate.time_zone = 'Amsterdam'
@cigs = Cig.all
@a_r_r_today_cigs = Cig.where(date: Time.zone.now.midnight..Time.zone.now)
end
end
Or you could just call the method manually:
class CigsController < ApplicationController
def home
set_variables
@date_now = Time.zone.now
@day_date_now = @date_now.day
end
def index
set_variables
end
private
def set_variables
Time.zone = 'Amsterdam'
Groupdate.time_zone = 'Amsterdam'
@cigs = Cig.all
@a_r_r_today_cigs = Cig.where(date: Time.zone.now.midnight..Time.zone.now)
end
end
Upvotes: 1