的時間來創建相關的行我有兩個表:借鑑與網頁什麼是「Rails的路」在另一排在Ruby中創建on Rails的
- 教訓「的has_many」頁面
- 頁「belongs_to」課程
當創建新課程時,我想要同時創建第一個頁面。 第一頁將有:
- 的lesson_id列等於新創建的教訓ID
- 標題欄等於新創建的教訓標題
的時間來創建相關的行我有兩個表:借鑑與網頁什麼是「Rails的路」在另一排在Ruby中創建on Rails的
當創建新課程時,我想要同時創建第一個頁面。 第一頁將有:
像這樣的事情會做的伎倆:
class Lesson < ActiveRecord::Base
has_many :pages
before_create :create_first_page
def create_first_page
if pages.empty?
pages.build(:title => title)
end
end
end
爲什麼使用before_create而不是after_create? – 2012-03-04 23:48:13
在這種情況下這不是什麼大問題; 'after_create'也可以做。我喜歡有機會早點放棄,也可以在這裏修改課程的屬性(例如計數器緩存)等,但在您的用例中它非常相似。 請注意,如果您使用'after_create',您將需要調用'pages.create'而不是'pages.build':前者將保存新頁面,但後者不會(因爲它將在ActiveRecord保存課程)。 – 2012-03-04 23:57:32
在你的'Lesson'模型中使用'after_create'過濾器 – apneadiving 2012-03-04 23:17:13
你可以舉一個after_create的例子嗎? – 2012-03-04 23:23:15