为update
以下工作:如何在创建对象时在after_filter中获取对象ID?
after_filter :only => [:create, :update] do
logger.info params[:id]
end
我怎么可以参考上create
的ID?
为update
以下工作:如何在创建对象时在after_filter中获取对象ID?
after_filter :only => [:create, :update] do
logger.info params[:id]
end
我怎么可以参考上create
的ID?
你不能。没有params [:id],因为你没有任何这个id的记录,你只能创建它。
很显然,创建用例的ID不会在params
。
您必须(在更新&创建方法中)将created.updated记录存储在实例变量中,并在后续过滤器中引用该实例变量。
试试这个:
after_filter :only => [:create, :update] do
logger.info params[:id].nil? ? self.id : params[:id]
end
您可以设置PARAMS [:ID在创建行动,如果它成功地保存到对象的ID。
那么它将存在于after_filter中。
after_filter :only => [:create, :update] do
logger.info (resource && resource.id) || params[:id]
end
这对我有效。