【问题标题】:Rails getting undefined method for existing field in databaseRails 获取数据库中现有字段的未定义方法
【发布时间】:2011-02-17 18:22:34
【问题描述】:

所以我在问题表中有一个名为 is_public 的字段。我迁移了我的数据库,重新启动它,现在当我每次调用 is_public 以获取问题记录中的记录时都会收到此错误。

undefined method `is_public' for #<Question:0x7e9aa780>

关于为什么会发生这种情况的任何想法?

【问题讨论】:

  • 这是一个奇怪的错误。迁移是否成功迁移?你能在控制台中重现错误吗?你的模型是从 ActiveRecord 继承的吗?
  • 当您调用 question.attributes.keys 时,是否列出了 is_publicis_public 是布尔字段吗?如果是这样,那么在末尾使用?is_public?。附言。这不是一个答案,因为我不知道你是否会接受它:D
  • 调用 is_public 会发生什么? (带问号)?
  • 请向我们展示您在questions 表中的db/schema.rb 代码。
  • 如果您在使用视图时出现问题,您可能需要显示您的视图和控制器代码。

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


【解决方案1】:

您是否使用attr_accessible? 如果是,请将:is_public 添加到列表中。

【讨论】:

  • 我遇到了类似的问题;我尝试了您的建议,但仍然收到 no method 错误。迁移成功,因为字段在表中。还有其他建议吗? (为听起来完全相同的问题提出一个新问题似乎很愚蠢......)
【解决方案2】:

不确定这是否是问题,但我遇到了同样的问题,而且我的 schema.rb 文件似乎以某种方式被更改,删除了该列。

我手动添加回来,错误消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    相关资源
    最近更新 更多