我有一个名为的班级Post
:
class Post < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)
我有一个名为Question
继承自的类Post
:
class Question < Post
end
Run Code Online (Sandbox Code Playgroud)
我有一个名为Answer
继承自'Post'的类:
class Answer < Post
end
Run Code Online (Sandbox Code Playgroud)
在Post
,我有一个名为列的列post_type_id
,其类型是Integer
.
如何使用STI和特定列名称和类型从Post继承?0
手段Question
和1
手段Answer
.(0和1是post_type_id
帖子表中的值)
Ver*_*cus 24
您可以更改单表继承列的名称,如下所示:
class Post < ActiveRecord::Base
self.inheritance_column = 'type_column_name'
end
Run Code Online (Sandbox Code Playgroud)
但是,没有办法让Rails使用整数而不是将实际类型存储为字符串,这使我认为这可能不是单个目标继承的一个很好的用例.也许范围更适合您:
class Post < ActiveRecord::Base
scope :questions, where(:post_type_id => 0)
scope :answers, where(:post_type_id => 1)
end
@questions = Post.questions.all
@answers = Post.answers.all
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5971 次 |
最近记录: |