2016-10-17 51 views
1

我有非常簡單的代碼,改變只在一列,例如:如何更新模型而不觸摸ecto中的updated_at?

content = Content 
    |> Repo.get(1) 

content 
|> Ecto.Changeset.change(%{ views_count: content.views_count + 1 }) 
|> Repo.update 

我不希望這個代碼改變其觀看次數,但我不想碰updated_at領域。我怎樣才能做到這一點?

+1

你是說你_want_代碼更改視圖算? – Dogbert

回答

6

我不知道我的理解這個問題,但是這可能工作:

Content 
|> where(id: 1) 
|> Repo.update_all(inc: [views_count: 1]) 
+2

這很好,也修復了OP代碼中的競爭條件。 – Dogbert

+0

太棒了!順便說一句,我還沒有找到任何文檔關於'inc'在ecto文檔 – asiniy

+0

@Dogbert你能詳細說明競爭條件是什麼以及提供的解決方案如何解決它? – AbM

相關問題