Tôi có một lớp chứa phương thức lớp này:Ruby: Tôi có thể sử dụng các phương thức ví dụ bên trong một phương thức lớp không?
def self.get_event_record(row, participant)
event = Event.where(
:participant_id => participant.id,
:event_type_code => row[:event_type],
:event_start_date => self.format_date(row[:event_start_date])
).first
event = Event.new(
:participant_id => participant.id,
:event_type_code => row[:event_type],
:event_start_date => self.format_date(row[:event_start_date])
) if event.blank?
event
end
Và tôi cũng có, trong cùng một lớp, một phương pháp dụ:
def format_date(date)
parsed_date = date.split('/')
# if month or day are single digit, make them double digit with a leading zero
if parsed_date[0].split("").size == 1
parsed_date[0].insert(0, '0')
end
if parsed_date[1].split("").size == 1
parsed_date[1].insert(0, '0')
end
parsed_date[2].insert(0, '20')
formatted_date = parsed_date.rotate(-1).join("-")
formatted_date
end
tôi nhận được một 'phương pháp xác định' lỗi cho #format_date
. (Trước tiên, tôi đã thử nó trước self
). Bạn có thể không sử dụng các phương thức thể hiện trong các phương thức lớp của cùng một lớp không?
Tại sao 'format_date' là một phương pháp thể hiện? Nó không sử dụng bất cứ thứ gì từ ví dụ. – tdgs
Tất nhiên, bạn không thể. Để gọi một phương thức cá thể, bạn cần một cá thể của lớp của bạn. –
@tdgs Điểm tốt. Tôi đã làm cho nó một phương pháp thể hiện bởi vì tôi nghĩ rằng làm cho nó một phương pháp lớp sẽ ngụ ý nó đã được sử dụng công cộng, khi trường hợp là nó chỉ để sử dụng nội bộ –