我想在使用应用程序的new / create函数时更改数据并将其保存到数据库中。
答案 0 :(得分:5)
before_create :myfunction
def myfunction
# Edit data
end
应该做的伎俩。
答案 1 :(得分:4)
你应该使用主动回调,正如其他两个答案所述。 * before_create *绝对是您正在寻找的。始终在模型中执行此类逻辑,而不是在控制器中执行。 Rails mantra(众多之一)是“瘦控制器,胖模型”,它可以更轻松地重用代码。
您可以在以下位置查看有效的回调文档:
http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
此外,这里有一个你想要实现的例子
class MyClass < ActiveRecord::Base
before_create :alter_my_data
def alter_my_data
# any manipulation you want to do here before saving
end
end
答案 2 :(得分:0)
class User < ActiveRecord::Base
before_create :validate_username
def validate_username
raise "blank error" if username.blank?
#....your code
end
end
答案 3 :(得分:0)
您的问题已在上面得到解答,但我建议您查看官方的Ruby on Rails指南:
http://guides.rubyonrails.org/
这些指南很容易理解并涵盖了Rails的许多部分。您的问题在“Active Record Validations and Callbacks”部分中得到解答。