2014-02-11 68 views
1

我是Rails的新手。我已經寫了兩個型號A和B. A和B款都喜歡以下幾點:使用另一個模型填充模型數據的功能

class A < ActiveRecord::Base 
    attr_accessible: a1, a2 
end 

class B < ActiveRecord::Base 
    attr_accessible: b1,b2 
    self.table_name = "b" 
end 

其實這裏還有一個耙的任務,將填充的數據與日常B的數據,以便從耙子任務,我們可以調用該函數。我不明白在哪裏編寫將用A的數據填充A的數據的那些函數。

+0

你只是想讓B的所有數據每天都替換A的內容嗎?或者只是複製新的數據?您可能需要澄清。目前最簡單的解決方案似乎只是用sql來完成。 'A.connection.execute('插入到(a1,a2)(從b選擇b1,b2)')' – Shadwell

回答

1

您已經提到過有一些rake任務。你可以把他們的代碼放在它們的lib/tasks目錄中。舉個例子:

copy_from_b_to_a.rake

namespace :copy do 
    task :from_b => :environment do 
    B.all.each do |b| 
     a = A.new a1 => b1, a2 => b2 
     a.save 
    end 
    end 
end 

如果運行rake -T,你可以看到rake copy:from_b列爲一項任務,當你運行它,它會嘗試複製執行代碼的數據在您創建的.rake任務中。

這只是使用rake任務的簡單示例。

相關問題