2017-08-16 24 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