0

ここに私の 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?」でいっぱいになるのは望ましくありません)。

これを改善する方法について何か考えはありますか?

どうもありがとう !

4

0 に答える 0