0
在rails中保存/更新時,如果在before_save回調中滿足條件,是否可以跳過/忽略列?Rails跳過保存/更新不同語言環境中的某些列
一樣,比如我有一個產品表,它有兩列:
- 名稱:字符串
- 價格:整數
和ProductTranslations表
- name_翻譯:字符串
- 的product_id:整數
- 區域:字符串
是否有可能有一個before_save回調是這樣的:
class Products < ActiveRecord::Base
has_many :translations
before_save :check_locale
private
def check_locale
if I18n.locale != :en
# save/update only the price column and don't update name column
# find ProductTranslation record of product name and update it
else
# save/update both the price price column and product name
end
end
end
將代碼什麼不顧更新名稱列?
此外,我不打算爲postgres使用像hstore_translations這樣的gem,因爲我希望將代碼創建爲模型的一部分(如果可能的話),以便以後參考。謝謝。
感謝這非常有用。雖然我不確定,但我認爲這將導致一個問題,如果有一個唯一性驗證名稱列 編輯:沒關係,我只是測試它,它保存 –
是的人,它對我工作正常。謝謝@sedad! –