一个表单输入,用于设置两个数据库值

时间:2016-10-19 09:10:36

标签: ruby-on-rails

我有一个表单,在提交时会在数据库中创建一个新记录。我在数据库中有两个值,value_1& VALUE_2。在表单中有一个value_1的输入字段,它是一个下拉值yes和no。提交表单时,我希望将value_1和value_2设置为value_1的输入字段中选择的值。因此,如果value_1的下拉列表设置为yes,则value_2也设置为yes。

我目前正在使用以下内容,但相信必须有更优雅的解决方案:

params[:person][:free] = params[:person][:trial]
@person = Person.new(params[:person])
@person.update_attribute(:free, params[:person][:free])

1 个答案:

答案 0 :(得分:0)

首先,你应该考虑你真正想要的东西。你的逻辑是什么? 你想要value_2总是等于value_1吗?我希望不会,因为在这种情况下你绝对不需要数据库中的第二列。 您是否希望value_2等于value_1只创建新记录但允许在此之后进行编辑?在这种情况下,您应该使用回调函数将逻辑放在模型中:

在您的模型中添加:

before_create :set_value_2

private

def set_value_2
  self.value_2 = value_1
end

私人声明是因为您不希望任何人访问模型本身以外的方法。