2017-08-16 59 views
0

我在用戶模型中有兩列code1和code2。我試圖合併列的值作爲代碼。我寫了一個遷移文件,我已經刪除了code1和code2。爲了運行舊的應用程序,我需要接受code1和code2,並將其合併以獲取代碼。所以我已經允許code1和code2。但是,當我使用舊的應用程序,我得到這個錯誤需要更新模型中的參數

unknown attribute 'code1' for User 

在我的控制器中我已經寫了下面的代碼

if user_params[:code1].present? 
    user_params[:code] = user_params[:code1] + user_params[:code2] 
    user_params.delete(:code1) 
    user_params.delete(:code2) 
end 

但預期它不工作。我如何在舊應用程序中支持code1。

回答

1

我不知道,但嘗試User型號

加入attr_accessor :code1, :code2一旦你定義User modelattr_accessor和允許它的控制器,你可以寫在用戶模式回調,寫self.code = self.code1 +自我。 code2

class User < ApplicationRecord 
    attr_accessor :code1, :code2 

    before_validation :demo_callback 

    def demo_callback 
    self.code = self.code1 + self.code2 
    end 

end 
+0

確實奏效,謝謝 – CR7