当用户注册我的网站时,他们会自动点击注册向导(使用WickedWizard gem)。他们输入的信息会创建财务模型,该模型属于User模型。 用户模型has_one Finance。
目前,当用户提交第一个财务表单时,页面将刷新而不进行任何更新。当我查看我的日志时,我看到了:
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = 2 ORDER BY "users"."id" ASC LIMIT 1
Finance Load (0.1ms) SELECT "finances".* FROM "finances" WHERE "finances"."user_id" = ? ORDER BY "finances"."id" ASC LIMIT 1 [["user_id", 2]]
(0.1ms) begin transaction
(0.1ms) rollback transaction
(0.0ms) begin transaction
(0.1ms) rollback transaction
以下是财务注册向导控制器:
def show
if @finance.nil?
@finance = current_user.build_finance
else
@finance = Finance.find_by_user_id current_user[:id]
end
render_wizard
end
def update
@finance = current_user.build_finance
@finance.update_attributes(finance_params)
render_wizard @finance
end
我还想考虑用户应该能够第二次通过向导并从与之关联的财务模型中查看其数据的用例 - 这就是为什么我认为if @finance。零?节目中需要检查。
修改:
当前正在创建财务模型,但它未与用户关联。
答案 0 :(得分:0)
尝试将代码更改为:
def show
@finance = current_user.finance || current_user.build_finance
render_wizard
end
def update
@finance = current_user.finance || current_user.build_finance
@finance.assign_attributes(finance_params)
render_wizard @finance
end