我想创建一个扩展ActiveRecord :: Base的模型'Relation',将其表名设置为'questions_tags',并且没有主键。我该怎么办?如何在没有主键的情况下创建模型
class Relation < ActiveRecord::Base
set_table_name 'questions_tags' # set table name, right?
# how to define 'no-pk'?
end
UPDATE
嗨,伙计们。我知道使用'create_table'可以解决这个问题,但这正是我想知道的:create_table(:id=>false)
背后的魔法是什么?如何在不使用create_table(:id=>false)
的情况下获得相同的效果?
据我没有魔法。 'create_table'有一个额外的选项,不管是否必须创建'id'-列。就这样。当你要求“魔法”时:你的意思是代码,生成的sql语句,还是别的......? – nathanvda 2010-06-21 13:07:53
如果你想知道幕后发生了什么,我会建议在Rails API文档中挖掘depper: http://api.rubyonrails.org/classes/ActiveRecord/Base.html, http:// api .rubyonrails.org/classes/ActiveRecord/Migration.html, http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html – auralbee 2010-06-21 13:27:51
@ nathanvda,auralbee:谢谢你们俩。我刚接触rails,也许我需要阅读更多关于ActiveRecord的文章。 – Freewind 2010-06-22 03:18:47