我有一個Ruby散列,我通過遠程Web API檢索。我有一個ActiveRecord模型,它具有與散列中的鍵相同的屬性。使用Ruby on Rails 4將密鑰/ val對從哈希分配給模型實例是否有一種微不足道的方法?是否可以忽略不存在的鍵?如何使用key/val對的散列並設置ActiveRecord屬性
1
A
回答
1
按照Rails docs:
更新(屬性)
從更新傳入的散列並保存記錄,所有包裹在一個交易模型的屬性。如果該對象無效,則保存將失敗並返回false。
所以儘量
model.update(dat_hash) #dat_hash being the hash with the attributes
我一直在做對Rails 3.2同樣的事情用update_attributes方法,這是同樣的事情。這是我的代碼:
def update
@form = get_form(params[:id])
@form.update_attributes(params[:form])
@form.save
if @form.save
render json: @form
else
render json: @form.errors.full_messages, status: :unprocessable_entity
end
end
它只更新散列中的屬性。
2
超級簡單!
更新的屬性不保存:
model.attributes = your_hash
# in spite of resembling an assignemnt, it just sets the given attributes
更新屬性節省:
model.update_attributes(your_hash)
# if it fails because of validation, the attributes are update in your object
# but not in the database
更新屬性,保存,如果無法保存提高
model.update_attributes!(your_hash)
相關問題
- 1. 設置ActiveRecord模型屬性
- 2. ActiveRecord檢測屬性設置
- 3. 如何在創建ActiveRecord對象時設置屬性?
- 4. 在RUby中使用散列設置屬性
- 5. 如何使屬性設置
- 6. ActiveRecord:如何設置模型的「更改」屬性?
- 7. 創建對象並設置屬性
- 8. 如何使用MethodInfo.Invoke設置屬性值?
- 9. 如何設置AngularJs屬性使用Javascript
- 10. 如何使用JavaScript設置marginLeft屬性?
- 11. 如何使用Dispatcher設置Image.Source屬性?
- 12. 如何使用keytool設置Usage屬性
- 13. 使用反射設置對象屬性
- 14. 使用TryParse設置對象屬性值
- 15. 使用AJAX設置對象屬性
- 16. 如何遍歷散列和最小屬性的散列
- 17. 如何使用自己的數據屬性設置CSS屬性?
- 18. 如何攔截使用屬性的類屬性設置器
- 19. 如何使用反射來設置此對象的屬性?
- 20. 如何使用RSpec測試組合對象屬性的設置?
- 21. 如何使用setter設置/編輯對象的屬性
- 22. 如何使用CoffeeScript中的類設置對象屬性
- 23. 如何使用在對話框中設置的屬性
- 24. 如何使用KVC設置Core Data對象的屬性?
- 25. 合併多個Ruby散列屬性
- 26. 合併散列與屬性數組
- 27. RSpec屬性散列
- 28. 如何設置對象轉換屬性?
- 29. 如何設置本機對象屬性
- 30. 在屬性中使用散列表鍵