Ruby on rails Rails 4模型子文件夹

Ruby on rails Rails 4模型子文件夹,ruby-on-rails,model,subdirectory,Ruby On Rails,Model,Subdirectory,我是在app/models/request/book文件夹中创建模型的,但book::request::Status.table_name返回表名“statuses”(“book_request_statuses”-是正确的表名)。如何获得正确的表名 型号位置 model/ book/ request/ status.rb 如果我设置self.table\u name=“book\u request\u status”,那么模型将正常工作(在模型中),但这不是一个好方法:

我是在app/models/request/book文件夹中创建模型的,但book::request::Status.table_name返回表名“statuses”(“book_request_statuses”-是正确的表名)。如何获得正确的表名

型号位置

model/ book/ request/ status.rb 如果我设置self.table\u name=“book\u request\u status”,那么模型将正常工作(在模型中),但这不是一个好方法:)

抱歉,我的英语不好

1)在app/models/book.rb中用这些行创建一个模块

module Book
  def self.table_name_prefix
    'book_'
  end
end
2) 然后在app/models/book/request.rb中创建另一个模块

module Request
  def self.table_name_prefix
    'request_'
  end
end
3) 将状态模型放在app/models/book/request/目录中

4) 保留所有其他文件的完整性


我希望这对你有用。

我想你的问题没有其他答案了。。只需在模型中指定表名,即可正常工作。好的,谢谢。Rails 3没有这个问题……我应该补充一点。我刚刚尝试调用
railsgmodelrequest/book/status
,它生成了这个答案中的项目。它还生成了正确的迁移。所以我建议这样做,让事情变得更简单:)。干杯
module Book
  def self.table_name_prefix
    'book_'
  end
end
module Request
  def self.table_name_prefix
    'request_'
  end
end