如何动态更新 Ruby on Rails 中的列

Emm*_*zco 2 ruby sql ruby-on-rails dynamic

我有一组需要编辑的列(这是动态的),如下所示:

toEdit = ["last_name_required", "email_required", "phone_required"]
Run Code Online (Sandbox Code Playgroud)

请记住,它是动态的,因此只能包含电话。例如:

toEdit = ["phone_required"]
Run Code Online (Sandbox Code Playgroud)

我有一个带有 SQL 列的模型,例如:

last_name_required
email_required
phone_required
Run Code Online (Sandbox Code Playgroud)

这些列接受布尔值。

我想生成一个代码来编辑以数组值作为参数的列。像这样:

o = Model.fist
o.last_name_required = true
o.phone_required = true
o.save
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的事情:

o = Model.first
o.toEdit[0] = true
o.toEdit[1] = true
o.save
Run Code Online (Sandbox Code Playgroud)

但我理解这是错误的,因为我试图使用字符串作为对象。

我不知道合适的语法是什么。

有任何想法吗?

谢谢

GoG*_*arl 6

o = Model.new
toEdit.each do |key|
  o.send "#{key}=".to_sym, true
end
o.save
Run Code Online (Sandbox Code Playgroud)