首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有attr_accessible的活动记录更新属性

没有attr_accessible的活动记录更新属性
EN

Stack Overflow用户
提问于 2014-08-25 01:32:47
回答 1查看 241关注 0票数 0

我有一篇模型文章。一旦创建了它,我们就向用户发送一个带有令牌的激活代码。此激活代码是故意黑名单的,因此没有添加到attr_accesible列表中。

一旦用户回来激活代码

代码语言:javascript
复制
articleitem = Article.find_by_activation_code(params[:code])
articleitem.activation_code = ""

现在我们如何更新记录。我不想使用保存,因为它激活了before_save方法

我已经在控制器上做了以下所有的尝试。

代码语言:javascript
复制
articleItem.update(activation_code: "")
update method is private

articleItem.update_attributes(activation_code: "")
WARNING: Can't mass-assign protected attributes: activation_code

更新记录的其他替代方法有哪些?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-25 07:00:52

另一种方法是设置虚拟属性(未经测试的代码)。

代码语言:javascript
复制
in model

attr_accessor :execute_before_save
before_save :some_method

def some_method
  # Check is execute_before_save is set, if not let the method execute no matter what
  if execute_before_save || true
     # your code follows
  end
end

in your controller

articleitem = Article.find_by_activation_code(params[:code])
articleItem.execute_before_save = false
articleitem.activation_code = ""
articleitem.save

这样,您就可以控制before_save回调,但它要求您设置虚拟属性,这是开销。

如果有帮助请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25477950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档