2011-07-06 69 views

回答

4

您应该使用主动回调,如其他两个答案所述。 * 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 
+0

也感谢链接(但他们应该修复tpyo那里,一些文本部分难以阅读,因为文字大小太小) –

+0

我同意! ctrl + mousewheel up upsize text ;-) –

5
before_create :myfunction 

def myfunction 
    # Edit data 
end 

应该这样做。

+0

谢谢,整个Ruby on Rails文档非常庞大,但脚本本身的Ruby脚本很容易=) –

0
class User < ActiveRecord::Base 
    before_create :validate_username 

    def validate_username 
    raise "blank error" if username.blank? 
    #....your code 
    end 
end 
+1

在验证方法中引发异常?真? –

0

你的问题上面已经回答了,但我真的推荐你看看官方的Ruby on Rails指南:

http://guides.rubyonrails.org/

这些指南很容易理解和涵盖Rails的许多部分。您的问题在“活动记录验证和回调”部分得到解答。

+0

我检查了他们,但你是否第一次使用ruby在rails上搭建脚手架,并且在那里有一个红宝石的huuuuuuge文档(在rails上),并且没有计划下一步该做什么,而你有在几天内从头开始写一个完整的应用程序?我应该如何知道这是在有效的记录验证和回叫?我已经知道活跃的记录和所有其他的东西,但不知道在哪里搜索,寻找什么以及如何去做。 –

相关问题