現在、2 つのモデルを使用してユーザー システムをセットアップしています --> プラン モデルには、多くのユーザーがいます。
私が実装したいのは、ユーザーがプランをアップグレード/ダウングレードできるようにする方法です。これを行うために、「update_plan」というコントローラーで POST アクションを作成しました。ユーザーが新しい Plan_id をそれに POST すると、ユーザーの plan_id が変更されるため、別のプランにサブスクライブされます。
ユーザーの plan_id は変更されませんが、Update-plan コントローラーに POST すると。コンソールに移動してこれを確認し、
user = User.find(1)
user.plan.id
2回目に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 のパラメーターをどのように更新しますか? どんな助けでも大歓迎です