我有一个带有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
答案 0 :(得分:0)
是的,你也可以使用它。但是你应该使用callbacks。你的item.rb
看起来像下面的
before_create :set_sum_value
private
def set_sum_value
self.sum = (self.num1 + self.num2)
true
end