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