我在我的Rails應用程序中有一個數據庫,其中包含每個project
中的positions
列表。用戶可以爲他們正在處理的當前項目添加/刪除職位。當用戶創建新項目時,我希望將這些職位中的一部分作爲默認值。這可能嗎?Rails在表單上生成數據庫行提交
0
A
回答
1
是的。我建議在你的項目模型使用after_save的回調
所以,在你的模型:
def before_save
@was_a_new_record = new_record?
return true
end
after_save :create_positions
def create_positions
Position.create name: 'Manager', project_id: self.id if @was_a_new_record
# repeat as required
end
1
#app/models/project.rb
class Project < ActiveRecord::Base
has_many :positions
before_create :set_positions
accepts_nested_attributes_for :positions #-> required for Rails 4.2+
private
def set_positions
3.times do
self.positions.build
end
end
end
當用戶創建一個新的項目
在創建project
之前,上面將構建關聯的position
對象。您可以添加特定的屬性到每個新的對象:
self.projects.build name: "test"
它的妙處在於,所有的記錄將在同一時間進行保存,使得它特別有效。
+0
每個職位都有一個關聯的project_id,是否可以通過此方法創建?如果你看看上面的答案就會顯示出這種困境。 –
相關問題
- 1. 在表單上生成新頁面提交數據庫顯示值
- 2. 表單數據上提交
- 3. 提交表單數據到數據庫
- 4. 在rails中提交表單並生成一個html {#id}
- 5. Rails在表單提交上設置值
- 6. Rails - 生成.sqlite3-數據庫
- 7. Rails表單提交
- 8. Dropzone on Rails導致雙向表單提交到數據庫
- 9. 數據庫提交從HTML表單
- 10. 無法提交表單到數據庫
- 11. Infopath數據提交到Sharepoint表單庫
- 12. PHP表單提交到SQL數據庫
- 13. C#提交表單與sql數據庫
- 14. 無法提交表單到數據庫
- 15. Django的不提交表單數據庫
- 16. 提交表單到數據庫錯誤
- 17. AJAX表單提交到MySQL數據庫
- 18. PHP表單不提交到數據庫
- 19. 表單不提交到數據庫
- 20. 提交表單到數據庫表單字段提交表單時
- 21. Ruby on Rails的 - 檢查是否提交的表單數據數據庫數據
- 22. Cakephp生成表單不提交所有數據
- 23. 未能提交表單數據提交
- 24. 提交表單由jquery腳本生成?
- 25. 表單提交處理和生成
- 26. JavaScript來生成表單提交鏈接
- 27. Javascript生成表單不提交
- 28. 提交表單後從數據庫中提取數據
- 29. 在表單提交之前生成上傳url
- 30. 在表單提交上生成到期URL
由於某種原因,這似乎沒有工作.... –
好吧,我似乎因爲做出太多假設而陷入困境,因爲我填充了一些可能的值的差距,並假設這些值會被調整爲匹配模型實際設置的方式。我的壞,我會更仔細地去。我假設你的職位類名稱和你在其中分配的變量。它們匹配嗎,你有特別的錯誤嗎? – Tim
我有一個位置標題字符串叫'位置',每個位置都有一個'project_id',它應該是創建的新項目。我已經調整了您提供的代碼以適應這些值,並且我沒有收到錯誤,但似乎沒有任何內容顯示在表格中,我應該顯示與當前項目關聯的位置。編輯:我只是調試了一下,看到有沒有project_id被保存在創建。 –