Rails更新模型而不进行编辑

时间:2016-04-26 08:41:21

标签: ruby-on-rails

我正在尝试从我的观点更新某些内容。事实上,对于这个模型,唯一可更新的字段是一个从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

(我检查了两次;))

1 个答案:

答案 0 :(得分:1)

如果有人遇到同样的麻烦,根据Narasimha的评论,这里你需要把它放在视图助手link_to中:

link_to 'Disable', myModel_url(@something.id), method: :put