我正在尝试从我的观点更新某些内容。事实上,对于这个模型,唯一可更新的字段是一个从true变为false的布尔值,反之亦然。
这就是为什么我不想在编辑视图/控制器方法中浏览表单。
这是我的按钮:
link_to 'Disable', myModel_path(id: @something.id), method: :put
# I checked, the id is the right one
这是我想要通过的控制器方法
# in myModel
def update
m = myModel.find(params[:id])
m.update(booleanField: !m.booleanField)
render nothing: true
end
同样在路线上,我做了类似的事情:
resources :myModels # with plural
现在我有一个错误说错路线...我认为问题来自我的视角中的link_to路径。
No route matches [PUT] "/myModels"
我尝试做的是通过UPDATE控制器方法并保持在同一页面(我将使用onclick重新加载一些JS)这样我就可以更新我的模型而不会给出一些麻烦给我的用户。
有任何帮助吗? :)
编辑:这里是佣金路线: myModels GET /myModels(.:format) myModels#index
POST /myModels(.:format) myModels#create
new_myModel GET /myModels/new(.:format) myModels#new
edit_myModel GET /myModels/:id/edit(.:format) myModels#edit
myModel GET /myModels/:id(.:format) myModels#show
PATCH /myModels/:id(.:format) myModels#update
PUT /myModels/:id(.:format) myModels#update
DELETE /myModels/:id(.:format) myModels#destroy
(我检查了两次;))
答案 0 :(得分:1)
如果有人遇到同样的麻烦,根据Narasimha的评论,这里你需要把它放在视图助手link_to中:
link_to 'Disable', myModel_url(@something.id), method: :put