我使用on_the_spot gem来编辑渲染表中的某个列。这很好。但是,当我使用AJAX创建新记录并更新表时,我得到以下错误消息:
"ActionView::Template::Error (No route matches {:action=>"update_attribute_on_the_spot",:controller=>"stores_spare_parts"}): "
我该如何解决这个问题?
从代码中我没有看到明显的错误。我想这是错误的是,提到的路线确实没有定义。我认为这是不可能的,因为它在index
-视图中工作,但如果索引视图属于不同的控制器,例如商店,并创建store_spare_part
到他的控制器,比这是一个可能的解决方案。但这只是一个猜测。
那么你的路由中有以下内容吗?
resources :stores_spare_parts do
collection do
post :update_attribute_on_the_spot
end
end
根据我现在掌握的信息,这是我能想到的唯一合乎逻辑的解释。我希望这对你有帮助。
[EDIT:发现另一个解决方案]我忘记了,但是on_the_spot
gem有显式指定url
的选项。目的是能够提供/使用您自己的方法,但在这种情况下也可以使用它。
用法:
on_the_spot_edit post, :title, :url => url_for({:controller => 'stores/store_spare_parts', :action => :update_attribute_on_the_spot})
它仍然是奇怪的,应该需要它,但我希望这是一个有效的解决方案。