我有静态查找,用于填充表单字段以及验证属性。
我没有将它们存储在数据库中,因为它们是静态的并且不会更改,核心应用程序逻辑基于这些值(不希望DB值更改破坏应用程序)。
config/initializers/constants.rb
我有几个可行的选项,但我不确定哪一个是最常规的或可能导致问题。像这样的静态常量的Rails约定是什么?
ApplicationRecord
config/constants.yml
所有模型都继承自constants.rb
对我来说似乎不太合适,因为将YAML加载到Ruby中需要额外的步骤,那么为什么不选择上面的let questionsAndAnswers = questions.map( (question) => {
return { question: question, answer: answers.filter( (answer) => { return answer.idquestion === question.idquestion; })[0]}
});
?我有点困惑,因为他们中的任何一个都会起作用,但我确信有一些意想不到的副作用我不会考虑。
答案 0 :(得分:0)
标准做法是在类(或模块)中定义与它们最相关的常量。在您的示例中,您可以在Applicant
中定义它们:
class Applicant < ApplicationRecord
APPLICANT_TYPES = ["primary", "coborrower"].freeze
end
然后当你使用它们时,通过那个类(或模块)引用它们:
<%= f.select :applicant_type, Applicant::APPLICANT_TYPES %>
这是一个非常普通的回答,但到目前为止它对我很有帮助!
另请查看ActiveRecord::Enum,以防这种模式可以帮助您。