【问题标题】:Why does my controller have access to one model, but not another?为什么我的控制器可以访问一个模型,而不能访问另一个模型?
【发布时间】:2011-12-24 13:30:33
【问题描述】:

我有一个名为 User 的控制器。在它的两个动作中,我想访问一个名为 Preference 的模型。我在尝试点击任一操作时收到“未初始化的常量 UserController::Preferences”错误。

我能够毫无错误地访问其他模型,例如 Prospect。 Prospect 和 Preference 都是相关的,与 User 具有belongs_to 关系。

我尝试以 ::Preferences 的形式访问模型,但我收到了这个非常相似的错误:“未初始化的常量首选项”。我也尝试过手动要求模型,但无济于事。

有没有其他人遇到过这个问题并提出了解决方案?

【问题讨论】:

  • 如你所说,模型名为Preference
  • 请显示模型用户、前景和偏好的代码。

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


【解决方案1】:

您似乎将其称为“首选项”。但这几乎肯定不是您模型的名称。

class UsersController < ApplicationController

  def show #or whatever
    @user = User.find(67)
    @preferences = user.preferences
    # OR
    @preferences = Preference.where(:user_id => @user.id).first
  end
end

请注意,当我们调用 Preference 时,它​​是单数的。

【讨论】:

  • 谢谢,这就是问题所在。有趣的是 2 个程序员可以围着屏幕坐 10 分钟却没有注意到这一点。有时只需要从外面看一眼。
  • @Fingerfactor 不客气——我同意,SO 最好的事情之一就是另一个开发人员可以带来的全新视角。
猜你喜欢
  • 1970-01-01
  • 2019-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多