我正在开发一个 Rails Web 应用程序,并且对如何在我的模型中使用查找表值感到困惑。这是我的应用程序中的示例模型:
table name: donations
id
amount
note
user_id
appeal_id
donation_status_id
donation_type_id
is_anonymous
created_at
updated_at
字段 *donation_status_id* 和 *donation_type_id* 指的是查找表。因此,在我的代码中,我有几个随机的地方可以进行如下调用:
my_donation = Donation.find(params[:id])
if my_donation.donation_status_id == DonationStatus.find_by_name("completed").id
#do something
end
对我没有经验的人来说,一次性查询 DonationStatus 表在这里似乎非常浪费,但我没有看到任何其他好的方法来做到这一点。我想到的第一个想法是在应用程序启动时将我所有的查找表读入一个散列,然后在我需要的时候查询它。但是有没有更好的方法来做我想做的事情?我不应该担心这样的查询吗?谢谢!