我實現了一個簽名/簽出機制,正如Michael Hartl在其教程中建議的(http://ruby.railstutorial.org/chapters/sign-in-sign-out)。所有工作都很完美:從配置文件頁面創建,刪除和更新用戶。子類(STI)的update_attributes上的驗證錯誤
然後我創建了一個Teacher
模型作爲User
(STI)的子類。它沒有自己的驗證,應該使用與父模型(用戶)相同的驗證。 但更新type =「Teacher」的用戶的屬性不再可能(對於其他用戶,它繼續工作)。當我編譯更新的形式,它返回:
'的錯誤信息說我teacher.attributes.password缺少驗證
而教師應繼承的用戶相同的驗證。
在routes.rb中,創立了老師模型我加入後:
resources :teachers, :controller => 'users', :type => "Teacher"
這是在用戶控制器的更新方法:
def update
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
redirect_to @user ...
如果我改變@ user.update_attributes (params [:user])到@ user.update_attributes(params [:teacher])它很有用,但顯然只適用於老師。
我認爲解決方案很簡單,但我是新手。 任何幫助,將不勝感激!