【问题标题】:rails 4- where to put user functionrails 4-放置用户功能的位置
【发布时间】:2014-03-20 00:36:19
【问题描述】:

我正在构建一个用于学习 rails 4 的示例应用程序,但我对我打算在哪里构建某些东西有点困惑。例如,我想检查用户是否登录,如果是,则在标题中显示他们的帐户余额(部分)。

感谢 Michael Hartl 的教程,我有一个功能可以在会话助手中检查用户的登录状态,该助手包含在应用程序控制器中,因此可以在部分中访问。

由于余额在Users 表中进行跟踪,我是否在Users 模型中构建函数get_balance?或者我应该在应用程序助手中创建一个函数?如果我在应用程序助手中构建它,它是自动包含在应用程序控制器中,还是我必须专门包含它?如果我不在模型中构建函数,我还能访问User 对象吗?

感谢您对菜鸟的耐心等待。

【问题讨论】:

    标签: ruby-on-rails ruby model-view-controller ruby-on-rails-4


    【解决方案1】:

    由于您的用户余额是Users 表中的一列,它已经作为一个字段供您使用(很可能是user.balance)。是的,这是你应该存储它的地方。您可以将助手用于与应用程序的一般布局相关的内容,并使用部分视图和布局的组合来传播它。

    【讨论】:

    • @Migol-- 那么我会在用户模型中构建一个函数吗?是否可以通过部分视图从所有视图中访问它?谢谢
    • @user101289 如果 balance 是一列,则不需要User#get_balance。您应该在ApplicationHelper 中创建一个名为get_balance 的新方法,加载当前用户并返回余额。
    • 好的——那么,正如我上面所问的,ApplicationHelper 是否需要包含在应用程序控制器中才能被部分访问?
    • 不知道,你需要检查一下 :)
    【解决方案2】:

    由于它已经在您的桌子上,假设您的用户已登录,您可以调用

    current_user.balance

    但听起来你想添加到给定的数据中,

    我建议也许为您的用户模型使用 Rails 装饰器。

    基本上,装饰器会为您的 Rails 应用程序添加一个面向对象的表示逻辑层。

    我使用Draper Gem

    【讨论】:

      猜你喜欢
      • 2020-06-30
      • 2013-07-01
      • 2015-06-25
      • 2013-06-02
      • 1970-01-01
      • 2015-06-08
      • 2013-02-06
      • 1970-01-01
      • 2010-10-14
      相关资源
      最近更新 更多