Rails Ruby Logic,用于根据Param值动态更新特定列

时间:2016-03-01 17:59:55

标签: ruby-on-rails logic

我的呼叫者ID功能适用于我的应用,但我目前难以理解如何根据params[:call_number_type]的值动态更新正确的列

params[:call_number_type]可以是"alt_phone""cell_phone""office_phone"nil ... nil默认为"alt_phone"是理想的。< / p>

如果params[:call_number_type]具有该值,则上述每个字符串都对应于我需要更新的列名。

@contact = Contact.find(params[:contact_id])

if @contact.update(this_needs_to_be_the_right_column_key: params[:call_number])

必须根据params[:call_number_type]

的值动态创建上述更新语句

如果有人可以帮助我,那会很棒。感谢。

1 个答案:

答案 0 :(得分:1)

试试这个

if @contact.update(call_number_type => params[:call_number])
  ...

private

def call_number_type
  params[:call_number_type].present? ? params[:call_number_type] : :alt_phone
end