需要更新模型中的参数

时间:2017-08-16 07:29:45

标签: ruby-on-rails

我在用户模型中有两列code1和code2。我试图将列的值合并为代码。我为此编写了一个迁移文件,我删除了code1和code2。要使用旧的应用程序,我需要接受code1和code2并将其组合以获取代码。所以我允许使用code1和code2。但是,当我使用旧应用程序时,我收到此错误

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

在我的控制器中,我编写了以下代码

create table Input_Table(id int, [year] varchar(100),initial int,final int)

insert into Input_table values(1,'2017',1,11)
insert into Input_table values(2,'2017',8,11)
insert into Input_table values(3,'2017',3,33)
insert into Input_table values(4,'2016',6,44)
insert into Input_table values(5,'2016',6,44)
insert into Input_table values(6,'2017',6,44)
insert into Input_table values(7,'2016',4,8)
insert into Input_table values(8,'2017',2,8)

但它没有按预期工作。我如何在旧应用程序中支持code1。

1 个答案:

答案 0 :(得分:1)

我不确定但是尝试在attr_accessor :code1, :code2模型中添加User

一旦在attr_accessor中定义User model并在Controller上允许它,就可以在User模型中编写回调并编写self.code = self.code1 + self.code2

class User < ApplicationRecord
  attr_accessor :code1, :code2

  before_validation :demo_callback

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

end