我想创建一个模块,其中容纳标准的crud功能。这是否可以做到,是明智的,坚持练习,还是不行,我想为自己找出答案。到目前为止,我已经创建了标准的get请求没有问题。不过,我正在尝试执行一个创建操作,并遇到“堆栈级别太深的错误”。crud行动到模块导致堆栈级别太深
class FlagsController < ApplicationController
include CrudConcern
before_action lambda { crud_index(Flag.all) }, only: :index
before_action lambda { crud_new(Flag.new) }, only: :new
before_action lambda { crud_create(Flag.new, flags_path) }, only: :create
def create
end
end
CRUD模块
def crud_create(model, route)
variable = model(params)
if variable.save
flash[:notice] = "Saved!"
redirect_to route
else
flash[:error] = "Try again"
render :new
end
end
为什么会出现这种情况?有没有办法解决它?有一个名为Crudify的宝石提供这个,所以我认为它可以完成。
感谢
它仍然给出了同样的错误。我尝试了这种变化,但无济于事。 – user3868832 2014-10-18 22:00:53
@ user3868832我用另一种可能性编辑了我的答案。 – mattmattmatt 2014-10-18 22:11:51