【问题标题】:Ruby on Rails changes table names for modelsRuby on Rails 更改模型的表名
【发布时间】:2013-10-07 18:32:53
【问题描述】:

对 Rails 来说是全新的,我读到它会更改您的表名,因为它会做出一堆假设,但我正在使用在预 Rails 中创建并在 PHP API 中使用的表,因此我无法更改它们.

我在 Rails 中创建了一个引用现有表的类,当然我得到了一个找不到表的 sql 错误,因为它在表名的末尾附加了一个 s,所以我继续把它放在我的类中定义:

class BookSubjects2title < ActiveRecord::Base
set_table_name "book_subjects2title"
belongs_to :bookSubjects
end

据推测,这应该可以解决我所读到的问题。然而事实并非如此,它仍然在尝试使用末尾带有 s 的名称,并且我从 rails 控制台收到错误消息。为了让 Rails 读取这个新配置,我需要做些什么吗?应该是动态的吧?

【问题讨论】:

  • 不确定,所以几个 cmets:看看config/application.rb 和配置config.active_record.pluralize_table_names = false。也许这就足够了。下一个:belongs_to :bookSubjects 应该是:belongs_to :book_subjects
  • 谢谢,我去看看,但是属于是表名还是类名?这是我不清楚的。我将您写入的配置行添加到 config/application.rb 中,但仍然是相同的内容。似乎很可疑,它会忽略一切,不是吗?但是应用程序的其余部分(例如它)似乎可以工作。
  • 啊哈,退出控制台并重新启动它似乎已经成功了。它现在可以正确读取表格。非常感谢。如果你想继续回答这个问题,我可以给你一个荣誉(这个论坛上的人似乎真的很认真)......

标签: ruby-on-rails


【解决方案1】:

不确定这是否是您唯一的问题,但

belongs_to :bookSubjects

不应该有's',而是使用这个。

belongs_to :book_subject

【讨论】:

  • 这是我在cmets上面贴的一个问题,belongs_to必须指向表名还是类名?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多