我正在創建一個測驗應用程序。這是我的模特。在創建相同模型時創建has_many和belongs_to關係
答案
class Answer < ActiveRecord::Base
belongs_to :question
end
問題
class Question < ActiveRecord::Base
has_many :answers
belongs_to :correct_answer, :class_name=>"Answer"
accepts_nested_attributes_for :answers, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
end
我想有一個嵌套的屬性形式使用railscast 196和197的東西。這樣可以創建/編輯時可以無限添加並刪除。
我可以用很好的答案來創建問題。問題是創建correct_answer字段。由於答案尚未保存,所以沒有id放入correct_answer_id表單中。有任何想法嗎?
DB明智地在問題中有correct_answer_id意味着我不必遍歷答案以獲得正確答案 – user1169547 2012-02-02 03:44:31
不,這是不正確的。您可以使用find從數據庫中選擇正確的問題。這將是一個查詢,並將返回一個元素。即使您在問題模型中存儲了正確的ID,您仍然需要查詢答案數據庫來解決實際問題。在Question模型中存儲正確答案確實是一個糟糕的設計。模型應該是你的程序的封裝元素。不要混合問題和答案。 – Max 2012-02-02 04:39:08