我在更新current_user属性时遇到问题
这是我的控制器:
class BuildingsController < ApplicationController
def create
# ---- many_things
#current_user.user_info.money = 1000
current_user.user_info.update_attributes!(money: 100)
#current_user.user_info.money = 1000 --- why not 100?
# ---- many_things
end
end
这是我的模特:
class User < ActiveRecord::Base
has_one :user_info
before_create :initialize_user
def initialize_user
self.create_user_info!(money:1000,level:1)
end
end
UserInfo模型为空白:
class UserInfo < ActiveRecord::Base
end
update_attributes不会抛出任何异常,似乎它不会保存记录。
有什么想法吗?
谢谢!
答案 0 :(得分:0)
你是想把钱定在100美元还是1000美元?如果您正在设置并同时重置money属性。
在create中调用代码块时,如果将值设置为$ 100。之后,在模型中,您有一个后回调:after_create运行initialize_user,它将money的值设置为$ 1,000。也许你想在create之前进行回调?