Rails4 更新一列时如何获取此更新时间

黄思乐

我用过Rails4.2.8,数据库是Mysql.

我的数据库表有很多columnsnamephoneemailaddress等等。

当用户更改时name,记录更改发生的时间,然后告诉用户“您可以在 30 天后更改您的姓名”。

我怎样才能让用户更改发生时间?

比如这张图:

这个例子

我的数据库已经有了created_atand updated_at,但是我发现当我更新用户信息时(不仅是name),它updated_at会改变,但是现在我想要当用户改变时name,我可以获得改变发生时的时间记录。这是我的一些数据库:

一些数据库

++++++++++++**************************************** **++++++++++++++++

我曾尝试使用@DickieBOy 并更改了一些代码,但是当我更新用户信息时,No route matches [POST]出现错误?我哪里做错了?请帮我 。

我的一些代码user.rb

validate :name_change
  def name_change
    if name_changed?
      self.name_updated_at = Time.now
    end
  end

  extend FriendlyId
  friendly_id :name, :use => [:slugged, :finders]
  def should_generate_new_friendly_id?
    name_changed?
  end

我的一些代码user_helper.rb

def edit_day
    edit_days = (@user.name_updated_at + 30.days).to_i
    ctime = Time.now.to_i
    st = (edit_days - ctime) / 1.day
    if st > 0
      return st
    else
      return 0
    end
  end

还有我的一些代码_form.html.erb

<%= form_for @user do |f| %>
    <div class="user_profile-infoEdit">
      <%= f.label :name, "name", class: "userLabel " %>
      <%= f.text_field :name, class: "userNameEdit" %>
      <br>
      <span class="text-gray fs12">30days can change one time
        <span>Have
          <span id="editDays"><%= edit_day %></span>  
          days can you change your name
        </span>
      </span>
    </div>
<% end %>

我发现def edit_day,当我更新用户时,它总是会the No route matches [POST] "/users/udaskffa"出错?我应该怎么办?谢谢。

迪基男孩

添加一个名为name_updated_at. 默认为创建日期。

Rails 有一个功能,您可以检查是否有更改。

name_of_field_changed?

在这种情况下:

name_changed?

我建议在验证中检查这一点。

validate :name_change_is_outside_of_day_limit, if: name_changed?

def name_change_is_outside_of_day_limit
  if name_updated_at && name_updated_at < Date.today - 30.days
    errors.add(:name, "can't be changed within 30 days of the last change.")
  end
end

这是未经测试的,但它应该可以工作。

当您调用save记录时,它将无法通过验证。然后可以将该消息返回给用户。

这与在模型级别执行的公认答案不同。这是应该包含验证的地方。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

模型更新时出现Rails4:ForbiddenAttributesError

来自分类Dev

为什么不更新文件?(Rails4)

来自分类Dev

如何在Rails4中获取资产摘要

来自分类Dev

Rails4日期时间验证

来自分类Dev

rails4 //计数为0时进行复数

来自分类Dev

使用不同的方法rails4时出错

来自分类Dev

Rails4在连接组中按列别名排序

来自分类Dev

如何重置Heroku Rails4资产管道缓存

来自分类Dev

Rails4:如何限制流视频文件的访问?

来自分类Dev

Rails4:如何显示5星图像

来自分类Dev

如何使用Devise in Rails4测试登录/注销用户

来自分类Dev

如何在Rails4中使用Capistrano

来自分类Dev

Rails4 Strong Parameters,如何允许关联数组?

来自分类Dev

Rails4:单击链接后如何更改显示位置?

来自分类Dev

如何在rails4中使用装饰器?

来自分类Dev

如何将Rails3路线转换为Rails4

来自分类Dev

在rails4中以嵌套形式进行编辑更新操作时会遇到问题?

来自分类Dev

Rails4:如何获取 ActiveRecord 连接池中的空闲连接数?

来自分类Dev

Rails4:如何在参数中允许使用动态键进行散列?

来自分类Dev

获取和更改has_and_belongs_to_many的属性[rails4]

来自分类Dev

Rails4:从模型或已链接的关系中获取ActiveRecord :: Relation

来自分类Dev

匹配地理编码的zip在rails4中获取太多数据

来自分类Dev

Rails4:在删除通过carrierwave上传的图像时,为什么要插入新记录?

来自分类Dev

Rails4 + Devise:用户未通过身份验证时“隐藏”路由

来自分类Dev

Rails4:模型验证段子列的“格式为”正则表达式

来自分类Dev

没有数据库列的Rails4强参数

来自分类Dev

在rails4记录器中添加唯一的ID以标识请求和响应

来自分类Dev

Rails4 Friendly_id唯一子弹格式

来自分类Dev

在同一控制器上的Rails4多个Ransack搜索

Related 相关文章

  1. 1

    模型更新时出现Rails4:ForbiddenAttributesError

  2. 2

    为什么不更新文件?(Rails4)

  3. 3

    如何在Rails4中获取资产摘要

  4. 4

    Rails4日期时间验证

  5. 5

    rails4 //计数为0时进行复数

  6. 6

    使用不同的方法rails4时出错

  7. 7

    Rails4在连接组中按列别名排序

  8. 8

    如何重置Heroku Rails4资产管道缓存

  9. 9

    Rails4:如何限制流视频文件的访问?

  10. 10

    Rails4:如何显示5星图像

  11. 11

    如何使用Devise in Rails4测试登录/注销用户

  12. 12

    如何在Rails4中使用Capistrano

  13. 13

    Rails4 Strong Parameters,如何允许关联数组?

  14. 14

    Rails4:单击链接后如何更改显示位置?

  15. 15

    如何在rails4中使用装饰器?

  16. 16

    如何将Rails3路线转换为Rails4

  17. 17

    在rails4中以嵌套形式进行编辑更新操作时会遇到问题?

  18. 18

    Rails4:如何获取 ActiveRecord 连接池中的空闲连接数?

  19. 19

    Rails4:如何在参数中允许使用动态键进行散列?

  20. 20

    获取和更改has_and_belongs_to_many的属性[rails4]

  21. 21

    Rails4:从模型或已链接的关系中获取ActiveRecord :: Relation

  22. 22

    匹配地理编码的zip在rails4中获取太多数据

  23. 23

    Rails4:在删除通过carrierwave上传的图像时,为什么要插入新记录?

  24. 24

    Rails4 + Devise:用户未通过身份验证时“隐藏”路由

  25. 25

    Rails4:模型验证段子列的“格式为”正则表达式

  26. 26

    没有数据库列的Rails4强参数

  27. 27

    在rails4记录器中添加唯一的ID以标识请求和响应

  28. 28

    Rails4 Friendly_id唯一子弹格式

  29. 29

    在同一控制器上的Rails4多个Ransack搜索

热门标签

归档