2016-10-17 76 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

相关问题