我希望自动执行以下定义:
private
def article_params
params.require(:article).permit(:title, :text)
end
将原子作为字符串传递:
def generator(model_name, params)
params.require(model_name).permit(params)
end
这可以在Ruby中完成吗?
答案 0 :(得分:0)
绝对! Ruby是一种非常动态的语言
您可以这样做:
def generator(model)
name = model.class.name.to_s.underscore
define_method "#{name}_params" do
params.require(name).permit(model.attributes.keys - [model.class.primary_key])
end
end
如果这对您有用,请告诉我 我建议将其解压缩为mixin