我目前有一个设置了 2 个模型的用户系统 --> 计划模型 has_many 用户。
我想实现的是一种允许用户升级/降级他们的计划的方法。为此,我在控制器中创建了一个名为“update_plan”的 POST 操作,当用户向其发布新的 Plan_id 时,用户的 plan_id 会发生变化,因此会订阅不同的计划。
当我发布到更新计划控制器时,尽管用户的 plan_id 没有改变。我通过去控制台验证了这一点,并做
user = User.find(1)
user.plan.id
第二次检查plan_id时,没有任何变化。
这是我的表单更改计划 ID 的样子
<%= form_tag("/users/update_plan", :method => "post" ) do %>
<%= hidden_field_tag :plan_id, plan.id %>
<%= submit_tag("Change To Plan", :class => "signup") %>
<% end %>
这是用户控制器中的更新计划操作
def update_plan
@user = current_user
if @user.update_attributes(params[:plan_id])
flash[:success] = "Profile updated"
sign_in @user
redirect_to change_plan_path
else
render change_plan_path
flash[:errors] = "Oops, something went wrong with the Update. Please Talk To Support"
end
end
我不太确定错误在哪里,因为我不太确定上面写的核心。
您将如何更新用户 plan_id 的参数?非常感谢任何帮助