【问题标题】:Ruby on Rails database variables are not workingRuby on Rails 数据库变量不起作用
【发布时间】:2011-07-25 19:01:40
【问题描述】:

我是 Rails 新手,我一直根据朋友的代码工作:http://pastebin.com/6HwT6CBs

当我尝试操作变量(例如 accuracy_ratio)时,Rails 会向我抛出错误。示例:

@post = Post.new(params[:post]) #These lines work fine
@post.user = current_user
@post.name = @post.user.name

@post.accuracy_ratio = 1.0 #This one throws an error

在 NetBeans Rails 上,当我键入“@post.”时,变量 user 和 name 会在自动完成帮助器下方弹出,但不是 accuracy_ratio。

我认为这是因为我需要 Rails 来重新配置我对表格所做的更改。这是真的?如果没有,有谁知道我该如何解决这个问题?

编辑:非常感谢大家。正如我所说,我是红宝石磨砂膏。运行 rake db:migrate 后我得到了它的工作。

【问题讨论】:

  • 错误是什么?您是否进行了迁移?
  • 正如@Zabba 指出的那样,每次更改迁移文件时都需要运行迁移。
  • 关于在 StackOverflow 上提问的最重要的一点是:不要告诉我们您遇到错误,告诉我们什么错误。否则我们无法为您提供帮助。告诉我们您“遇到错误”是无用的声明。

标签: ruby-on-rails ruby database migrate


【解决方案1】:

Activerecord 将根据它在数据库表中找到的内容更改您的模型。如果您已经运行了迁移并且表包含该列,那么就有问题了。您可以通过“重新加载!”重新加载!并检查模型是否有新列。

您应该加载控制台并输入 Post 以查看它有哪些字段。我对 Rails 的 netbeans 不太熟悉。我使用 Rubymine 和文本控制台。

【讨论】:

    【解决方案2】:

    您确定类型“double”存在吗?好像您的迁移刚刚失败。请改用浮点数或小数(取决于您的要求)。

    【讨论】:

    • 应该是十进制(作为迁移数据类型)。仅当您不关心准确性时才使用浮点数,否则使用小数。
    • 修复了更通用的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多