【发布时间】:2014-08-12 17:13:26
【问题描述】:
我正在尝试创建一个按钮来将模型记录属性从 false 更改为 true。我正在使用 form_tag 如下:
=form_tag edit_goal_path(goal), method: :post do
=hidden_field_tag :purchased, value: true
=submit_tag "Purchase"
这是 haml,但请随时使用 ERB 发布建议。我收到以下错误:
No route matches [POST] "/goals/4/edit"
Rails.root: /home/ben/rails_projects/hartwig
但是,我已经从资源中获得了以下路线:
PUT /goals/:id(.:format) goals#update
我的控制器如下所示:
def edit
@goal = Goal.find(params[:id])
end
def update
@goal = Goal.find(params[:id])
if @goal.update_attributes(goal_params)
redirect_to '/goals', notice: "Update successful!"
else
render '/'
end
end
def goal_params
params.require(:goal).permit(:item, :description, :picture, :purchased)
end
如何让它工作?或者有没有更好的方法来解决这个问题?
【问题讨论】:
标签: ruby-on-rails routes put