**这里的原始问题无法正确解释我的问题,对读者不好意思。你能否参考"更新"部分?谢谢**
假设我有两个模型 - Questions
和SolvedQuestions
。我想要做的是将已解决的Questions
复制到SolvedQuestions
。该模型如下所示:Questions(id: integer, content: string, user_id: integer)
和SolvedQuestions(id: integer, question_id: integer, content: string, user_id: integer, solver_id: integer, solved_at: datetime )
所以问题是有没有办法将属性从Questions复制到具有相同属性名称的SolvedQuestions,除了明确地逐个复制值?原因是:1。当将新字段添加到Questions和SolvedQuestions时,未来可能更加强大。 2.节省时间。
有什么想法?谢谢:))
更新:
我同意状态属性会这样做!我想我选了一个非常糟糕的例子,所以请接受我的道歉。我试图解决的问题是用户可以编辑Questions
所以我需要保留所有历史问题的实例。
在这种情况下,我应该使用示例:Questions
和QuestionsHistories
。这就是为什么我要将问题的图像复制到QuestionHistories ...谢谢!
答案 0 :(得分:0)
更好的结构
class Question < ActiveRecord::Base
end
class SolvedQuestion < Question
# when solved, set solved as true and
# set question_id in solver.
has_many :solvers
end
class Solver < ActiveRecord::Base
belongs_to :solved_question
end
#Migration
create_table questions do |t|
t.solved :boolean, default: false
# others
end
简单的基本ActiveRecord设置。不需要花哨的东西。
答案 1 :(得分:0)
我认为最好的方法是只使用一个模型问题并添加一个类似已解决的布尔字段?并在问题模型中移动solver_id和solve_at。
您可以在范围
的帮助下过滤掉scope :solved, where(:solved => true)
scope :not_solved, where(:solved => false)