gpt4 book ai didi

ruby-on-rails - 如何自定义 Rails 3 STI 列名

转载 作者:行者123 更新时间:2023-12-04 00:04:04 25 4
gpt4 key购买 nike

我有一个名为 Post 的类(class):

class Post < ActiveRecord::Base
end

我有一个名为 Question 的类(class)继承自 Post :
class Question < Post
end

我有一个名为 Answer 的类(class)也继承自“Post”:
class Answer < Post
end

Post , 我有一列名为 post_type_id其类型为 Integer .
如何使用 STI 和特定列名和类型从 Post 继承? 0意味着 Question1意味着 Answer . (0 & 1 是帖子表中 post_type_id 的值)

最佳答案

您可以像这样更改单表继承列的名称:

class Post < ActiveRecord::Base
self.inheritance_column = 'type_column_name'

end

但是,没有办法让 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

关于ruby-on-rails - 如何自定义 Rails 3 STI 列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9454595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com