在创建条目时计算和更新DB字段?

时间:2015-11-24 14:49:16

标签: ruby-on-rails

我有一个带有num1 num2和sum字段的Items控制器。我想在创建条目时更新数据库中的sum字段。我将此行放在创建函数中的项目控制器中,我可以成功更新数据库中的sum字段。

@item.sum = @item.num1 + @item.num2

这是正确的方法吗?

class ItemsController < ApplicationController

before_action :logged_in_user, only: [:create, :destroy]

def create
  @item = current_user.items.build(item_params)
  @item.sum = @item.num1 + @item.num2 #Correct way ?
  if @item.save
    flash[:success] = "Item created!"
    redirect_to root_url
  else
    render 'static_pages/spage1'
  end
end

def destroy
end


private

  def item_params
    params.require(:item).permit(:num1, :num2, :name)
  end

end

1 个答案:

答案 0 :(得分:0)

是的,你也可以使用它。但是你应该使用callbacks。你的item.rb看起来像下面的

before_create :set_sum_value

private
   def set_sum_value
      self.sum = (self.num1 + self.num2)
      true
   end