【发布时间】:2023-05-24 07:00:01
【问题描述】:
我正在努力为辅助方法找到合适的位置。该方法基本上“检查”用户模型对象,并应返回有关用户“进度”的一些信息,例如。 “您需要添加图片”、“填写您的地址”或“添加您的电子邮件地址”。我要检查的条件都不是必需的,就像在 LinkedIn 等上看到的“这是您的个人资料完整性”的功能。
这些“操作”中的每一个都有一个 URL,用户可以在其中完成操作,例如。如果缺少个人资料照片,他们可以上传该页面的 URL。
由于我需要访问我的命名路由助手(例如 new_user_image_path),我很难弄清楚构建代码的 Rails 方式。
我想用这样的 DSL 返回一个对象:
class UserCompleteness
def initialize(user)
end
def actions
# Returns an array of actions to be completed
end
def percent
# Returns a 'profile completeness' percentage
end
end
然后用类似的东西来使用它:@completeness = user_completeness(current_user)
但是,如果我将此添加到我的 application_helper 中,我将无法访问我的命名路由助手。如果我将它添加到我的用户模型中也是如此。
我应该把这种辅助方法放在哪里?
【问题讨论】:
-
您应该可以在您的辅助方法中访问命名路由(以及任何其他视图辅助),但是您将无法在您的模型 UserCompleteness 中访问它们。
标签: ruby-on-rails