奇怪的AbstractController :: ActionNotFound错误与Rails中的更新方法

我有这些动作的FamiliesController

def edit @family=Family.find(params[:id]) end def update @family=Family.find(params[:id]) @family.update_attributes(params[:family]) end 

家庭模型 :(使用Mongoid)

 attr_accessible :location field :location 

edit.html.erb

 


rotues.rb

 resources :families 

但是当我提交表格时,我得到:

AbstractController :: ActionNotFound at / families / 5235513e1dba7f8605000004

无法为FamiliesController找到操作’5235513e1dba7f8605000004′

(5235513e1dba7f8605000004)是该人的id

这有什么不对?

编辑

所以我发现了SO,看起来Rails不支持字母数字ID 。答案中提到的gem也不适用于mongoid(它们仅适用于ActiveRecord模型)。 那么如何为Mongoid解决这个问题呢?

这是否意味着我不能使用Rails更新方法来更新Mongoid中的数据库记录?

我感动了

资源:家庭

routes.rb的顶部。 现在它工作正常。

不,不,为什么会这样。

Rails默认不支持字母数字ID,它需要一个整数。

如果您需要将ID设为字母数字,则需要进行一些更改。 请查看以下资源: