[英]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.