Rails视图处理模型中的空白值

时间:2012-07-10 19:01:15

标签: ruby-on-rails ruby ruby-on-rails-3

我在这里,通过我的rails项目,这个问题让我感到震惊。 对于我的用户配置文件,某些属性将为空白,我希望它们默认为特定值:如果未设置,我希望我的视图显示自定义消息并在其周围添加类似“空白”的CSS类。

我正在使用Presenter,但因为它有点像Helper,所以我们说这些是帮助方法。

在我的助手中我有类似的东西:

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?')

关于如何改进这个的任何想法?

非常感谢!

0 个答案:

没有答案