无法将计算字段添加到新记录中

时间:2015-10-18 14:43:38

标签: ruby-on-rails updates

我在customers表中创建了一个新的客户记录。但是,除了名字和姓氏之外,我还要添加一个" full_name"领域。因此,在成功创建记录(使用params)之后,我尝试更新新的full_name属性,但它没有被保存。以下是创建新记录的代码:

$_SESSION['myuserprivilege'] = 'admin'

以下是我修改代码以计算全名并更新记录的方法:

  def create
    @customer = Customer.new(customer_params)
    if @customer.save
      redirect_to customer_index_path
    else
      render 'new'  # user entered values available in @customer
    end
  end

但它没有将full_name保存到db。我做错了什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您的代码应该有效。将第二个@customer.save替换为@customer.save!,然后查看该保存是否按预期执行。

我会使用ActiveRecord回调来处理这种行为。你不应该把太多东西放在你的控制器中。

class Customer < ActiveRecord::Base
  before_save :set_full_name

  private

  def set_full_name
    self.full_name = "#{first_name} #{last_name}"
  end
end