我必須在ActiveRecord模型上實現這些方法才能支持一些所需的視圖功能。如何動態聲明這些實例方法?
我在想,必須有一種更簡潔的方式來聲明這些方法,可能涉及一系列符號和Array#each
調用。
有什麼建議嗎?
(這些是傳統的列名,BTW)
class Contract < ActiveRecord::Base
def start_date_displayed
self.start_date.present? ? self.start_date.strftime("%-m/%-d/%Y") : ''
end
def start_date_displayed=(input)
if input.present?
self.start_date = Date.strptime input, '%m/%d/%Y'
end
end
def end_date_displayed
self.end_date.present? ? self.end_date.strftime("%-m/%-d/%Y") : ''
end
def end_date_displayed=(input)
if input.present?
self.end_date = Date.strptime input, '%m/%d/%Y'
end
end
def ArrivalDate_displayed
self.ArrivalDate.present? ? self.ArrivalDate.strftime("%-m/%-d/%Y") : ''
end
def ArrivalDate_displayed=(input)
if input.present?
self.ArrivalDate = Date.strptime input, '%m/%d/%Y'
end
end
def Contract_ReceivedDate_displayed
self.Contract_ReceivedDate.present? ? self.Contract_ReceivedDate.strftime("%-m/%-d/%Y") : ''
end
def Contract_ReceivedDate_displayed=(input)
if input.present?
self.Contract_ReceivedDate = Date.strptime input, '%m/%d/%Y'
end
end
def Contract_FinalizedDate_displayed
self.Contract_FinalizedDate.present? ? self.Contract_FinalizedDate.strftime("%-m/%-d/%Y") : ''
end
def Contract_FinalizedDate_displayed=(input)
if input.present?
self.Contract_FinalizedDate = Date.strptime input, '%m/%d/%Y'
end
end
def Committee_Date_displayed
self.Committee_Date.present? ? self.Committee_Date.strftime("%-m/%-d/%Y") : ''
end
def Committee_Date_displayed=(input)
if input.present?
self.Committee_Date = Date.strptime input, '%m/%d/%Y'
end
end
# ...
end
Yossi&xzgyb謝謝。我希望我能接受這兩個答案。我跟Yoss一起去了,因爲這是我實際執行的那個。 – Ethan