Ruby activerecord似乎忽略了set_table_name

时间:2010-07-02 16:55:12

标签: ruby activerecord schema

我在Mac OSX 10.6.4上使用Ruby 1.8和activerecord 2.3.8运行ruby。我在NetBeans 6.9中运行以下代码,但我使用的是10.6的ruby解释器

我有以下代码:

require 'rubygems'
require 'active_record'

ActiveRecord::Base.establish_connection
(
    :adapter=> "mysql",
    :host => "localhost",
    :username => "test",
)

class Test_information < ActiveRecord::Base
  set_table_name = "test_information"
end

record = Test_information.find(:first)

当代码运行时,我得到一个错误,它无法找到表test_informations。有一个名为test_information的表,我可以查询它......但不能使用activerecord。

我是否需要使用set_table_name进行一些神奇的咒语?我的印象是,使用带有activerecord的现有模式非常简单......

有什么想法吗?

提前致谢,

- 罗伯特

3 个答案:

答案 0 :(得分:4)

语法为set_table_name "test_information"(无等号)

答案 1 :(得分:2)

set_table_name是一个方法,所以你需要说

set_table_name "test_information"

作为参数传递而非作为作业

答案 2 :(得分:0)

有意思......如果我在课程定义之后包含以下任何一行,那么效果很好。

Test_Information.pluralize_table_names = false
Test_Information.set_table_name("test_information")

是否有某些原因导致它在类定义中不起作用?