我想改变数据,然后在使用应用程序的新建/创建功能时将其保存到数据库中。Ruby on Rails:如何在保存到数据库之前执行一个函数?
回答
您应该使用主动回调,如其他两个答案所述。 * before_create *绝对是你正在寻找的那个。总是在模型中做这种逻辑,而不是在控制器中。 Rails的咒语(众多之一)是“瘦控制器,胖模型”,可以更轻松地重用代码。
您可以检查活动回调文件:
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
也感谢链接(但他们应该修复tpyo那里,一些文本部分难以阅读,因为文字大小太小) –
我同意! ctrl + mousewheel up upsize text ;-) –
before_create :myfunction
def myfunction
# Edit data
end
应该这样做。
谢谢,整个Ruby on Rails文档非常庞大,但脚本本身的Ruby脚本很容易=) –
class User < ActiveRecord::Base
before_create :validate_username
def validate_username
raise "blank error" if username.blank?
#....your code
end
end
在验证方法中引发异常?真? –
你的问题上面已经回答了,但我真的推荐你看看官方的Ruby on Rails指南:
http://guides.rubyonrails.org/
这些指南很容易理解和涵盖Rails的许多部分。您的问题在“活动记录验证和回调”部分得到解答。
我检查了他们,但你是否第一次使用ruby在rails上搭建脚手架,并且在那里有一个红宝石的huuuuuuge文档(在rails上),并且没有计划下一步该做什么,而你有在几天内从头开始写一个完整的应用程序?我应该如何知道这是在有效的记录验证和回叫?我已经知道活跃的记录和所有其他的东西,但不知道在哪里搜索,寻找什么以及如何去做。 –
- 1. Ruby on Rails:在保存到数据库之前总结文件中的数据
- 2. Ruby on Rails - 我可以在保存之前修改数据吗?
- 3. Ruby on Rails - 如何将当前日期时间保存到数据库?
- 4. 使用Ruby On Rails添加数字并保存到数据库
- 5. 在任何函数执行之前执行一个函数
- 6. 如何确保函数在数据通过angular2之前执行?
- 7. 在保存到Rails数据库之前修改表单参数
- 8. Ruby on Rails - 复选框不保存到数据库?
- 9. 表单字段不保存到数据库 - Ruby on Rails的
- 10. Ruby on Rails不保存岗位数据
- 11. 如何在保存到数据库之前合并数据?
- 12. Ruby on Rails的 - 存储PARAMS数据库
- 13. Ruby On Rails数据库
- 14. Ruby on Rails + Filemaker数据库
- 15. Ruby on Rails:在数据库中保存R plot
- 16. 如何执行一个函数只有在ruby on rails上保存“remote => true”的窗体的父类?
- 17. 如何确保循环保存数据库在Mocha完成之前执行?
- 18. 如何在Ruby on Rails 3.2.8上的LocalStorage上保存数据?
- 19. Rails在保存到数据库之前弹出窗口
- 20. 执行在Ruby中一个SQL文件on Rails的导入数据库
- 21. 保存到数据库后,但在此之前在Ruby中检查HTTP请求on Rails的
- 22. Ruby on Rails根据发布数据在数据库中保存记录
- 23. Ruby on Rails - 多个数据库连接
- 24. 将数据存储在没有数据库的Ruby on Rails中
- 25. 保存Ruby on Rails
- 26. Ruby on rails,将数据保存在两个表中
- 27. Rails - 保存到数据库之前更新嵌套属性
- 28. Ruby on Rails的:保存搜索查询数据库中的
- 29. Ruby on Rails模型保存rest_client没有本地数据库
- 30. Ruby on Rails:用一个数据库条目保存许多字段类型
你想做它应用程序范围内还是模型特定的? – Bohdan
应该只是在模型中,就像在答案 –