我在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。我做错了什么?
提前致谢。
答案 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