繁体   English   中英

在保存到Ruby on Rails之前如何修改记录

[英]How to modify a record before saving on Ruby on Rails

寻找一种方法:

  • 更改新记录的字段之一(即-强制将其转换为小写),然后再将其保存到RoR数据库中。 我试过了:

    before_create做| term | term.myfield.downcase! 结束

但这给出了以下错误:

undefined method `before_create' for RowsController:Class

要么

  • 检查该字段是否全部为小写,如果不是,则引发错误消息,并且不创建记录。

尝试过:

before_filter :check_lowcase, :only => [:new]
def check_lowcase
  if (Term.new =~ /[^a-z]+/)
    flash[:notice] = "Sorry, must use lowercase"
    redirect_to terms_path
  end
end

这似乎只是被忽略了。

您需要在模型上执行操作,而不是在控制器上执行操作:

class YourModel < ActiveRecord::Base
 before_create :downcase_stuff

  private
    def downcase_stuff
      self.myfield.downcase!
     end
end

before_save { |classname| classname.myfield = myfield.downcase }

    before_create :lower_case_fields

    def lower_case_fields
       self.myfield.downcase!
    end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM