2011-07-06 68 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上),並且沒有計劃下一步該做什麼,而你有在幾天內從頭開始寫一個完整的應用程序?我應該如何知道這是在有效的記錄驗證和回叫?我已經知道活躍的記錄和所有其他的東西,但不知道在哪裏搜索,尋找什麼以及如何去做。 –

相關問題