我目前有一個用戶系統設置2個模型 - >計劃模型has_many用戶。屬性不在PUT請求更新
我想實現的是一種允許用戶升級/降級計劃的方法。爲此,我在控制器中創建了一個名爲「update_plan」的POST動作,並且當用戶向其發佈新的Plan_id時,比用戶的plan_id更改,因此將訂閱不同的計劃。
當我POST到更新計劃控制器時,雖然用戶的plan_id沒有更改。我首先要到控制檯,並做
user = User.find(1)
user.plan.id
當檢查plan_id的數據類型,第二次驗證了這一點,沒有任何變化。
這裏是我的形式看起來像改變計劃ID
<%= form_tag("https://stackoverflow.com/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參數?任何幫助極大讚賞
我想你需要做'@ user.update_attributes(params)' – bdares