ここに私の Rails プロジェクトがありますが、この疑問が頭をよぎります。私のユーザー プロファイルでは、一部の属性が空白になり、特定の値にデフォルト設定する必要があります。それらが設定されていない場合、ビューにカスタム メッセージを表示し、その周りに「空白」などの CSS クラスを追加します。
私はプレゼンターを使用していますが、ヘルパーのように振る舞うので、ヘルパー メソッドとしましょう。
私のヘルパーには次のようなものがあります:
def professional_information
handles_not_set user.university, user.job do |university, job|
content_tag(:p, university.content, class: university.error) +
content_tag(:p, job.content, class: job.error)
end
end
は次のhandles_not_set
ように定義されます。
def handles_not_set(*objects)
o = []
objects.each do |object|
attr = OpenStruct.new
if object.blank?
attr.content = 'Not specified.'
attr.errors = ['blank']
else
attr.content = object
attr.errors = []
end
o << attr
end
yield *o
end
しかし、これはかなり洗練されていないので、コードを DRY に保ちたいと思います (つまり、プレゼンターのメソッドが「if xxx.blank?」でいっぱいになるのは望ましくありません)。
これを改善する方法について何か考えはありますか?
どうもありがとう !