ruby-on-rails - 如果属性已填充,则调用 before_update

标签 ruby-on-rails ruby-on-rails-4

仅当特定属性被填充时调用 before_update 触发器的方法是什么?

这是我的部分代码:

before_update { self.gravatar = gravatar.downcase }

validates :gravatar, :on => :update, length: { maximum: 128 },
                    format: { with: VALID_GRAVATAR_REGEX }, 
                    allow_blank: true

事实上,只有在编辑表单中填写了该属性时,我才想调用该属性的 downcase 函数。

我目前有以下错误:

undefined method `downcase' for nil:NilClass

这是合乎逻辑的。

最佳答案

像那样? before_update { self.gravatar = gravatar.downcase 如果 gravatar.present? }

关于ruby-on-rails - 如果属性已填充,则调用 before_update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31293317/

相关文章:

ruby-on-rails - 将 ActiveRecord 响应从 Controller 渲染到 View

mysql - Multi-Tenancy 系统从 MYSQL 迁移到 POSTGRES

ruby-on-rails-4 - 为什么远程 : true and confirm: 'Are You Sure?' not work together?

ruby - pubnub 发布不发布

ruby-on-rails-4 - 嵌套资源的未定义方法[model] _url

ruby-on-rails - Bundler 尝试更新 rails 但它的版本保持不变

ruby-on-rails - capybara ajax 竞赛条件

ruby-on-rails - ruby rails : Is there any way to pull items from the database and have them returned in a specified order?

mysql - 将 MySQL "get top y for each n"GROUP BY 查询转换为 PostgreSQL

ruby-on-rails - 仅使用 Ruby 内置函数将秒数转换为小时数 - 除了天数