2013-06-04 35 views
0

我有一個簡單的Rails應用程序,它包含幾個地方包含的模型。我允許在Rails 2.3.8中從幾個不同的控制器更新模型。在我的模型中,我有允許驗證名稱和描述的代碼。如果它們是空的Active_Scaffold應該填充一個錯誤信息的div。這在直接鏈接到用戶控制器的頁面中工作,但如果我將用戶包含在其他任何地方,它只會顯示在用戶的控制器頁面上,而不會顯示在他們當前所在的頁面上。不應該Acitive_Scaffold神奇地重定向到正確的地方?驗證在Rails中無法使用2.3.8

代碼:

class User < ActiveRecord::Base 
    validates_presence_of :name, :description, :allow_blank => false 

    def create_from_params(params) 
     @name = params[:name] 
     @description = params[:description] 
    end 

正如你可以看到什麼引人注目的努力。

編輯:對不起,我離開了方法簽名

+0

你並不需要覆蓋的用戶模型中的'create'方法(的ActiveRecord :: Base的給你帶來所有這些基本的方法,如創建新的更新刪除破壞等) – MrYoshiji

+0

對不起,我編輯它。我忘記了方法簽名的一部分。 –

+0

這個方法'create_from_params(params)'在這裏沒有用,AR :: Base的基本'create'方法就足夠了。無論如何,如果你想設置模型的屬性,請改用'self.name = params [:name]'。但我建議你使用AR :: Base的基本'create'方法。哦,並且還用'self.save'完成;-) – MrYoshiji

回答

0

其餘我懷疑active_scaffold意見只檢查它代表了模型誤差。將此錯誤檢查代碼添加到除用戶視圖之外的任何視圖。

<%= error_messages_for :user %> 
+0

這是否會正確填充active_scaffold錯誤消息? –

+0

我從來沒有使用過active_scaffold,但我認爲如果你嘗試這個,它會揭示這個問題。 – eabraham