为什么Rails拒绝使用我的模型(基于SQL视图)?

bas*_*ero 2 activerecord ruby-on-rails

我在MySQL中创建了一个视图,它对应于我正在生成的一些报告(按月分组的总和,以及累计的年份).视图有3列(年,月,总).视图/表名称为"report_monthly".我知道我可以通过connection().select_all(...)使用原始sql,但我想为这个表创建一个ActiveRecord.

这是我在名为"report_monthly.rb"的文件中的模型:

class MonthlyReport < ActiveRecord::Base
    # I assume that setting the table name circumvents the pluralized file name convention
    set_table_name "report_monthly"
end
Run Code Online (Sandbox Code Playgroud)

该文件放在标准的rails结构中:

app
    controllers
    helpers
    models
        report_monthly.rb
    views
Run Code Online (Sandbox Code Playgroud)

现在,当我使用RoR控制台(脚本/控制台)时,我甚至看不到类更少列出所有行

>> MonthlyReport
    NameError: uninitialized constant MonthlyReport
Run Code Online (Sandbox Code Playgroud)

我所有的其他模型都运行良好,但它们遵循"singular.rb"的惯例 - >类Singluar - >表格Plural

更新:这与视图是不可变的这一事实有什么关系吗?无法插入/更新?

版本:

Ruby 1.8.7,Rails 2.3.2,MySQL 5.0.75

Sam*_*Sam 7

文件名和类名必须相同,因此需要调用您的文件monthly_report.rb.