编辑model时,如果字段类型是text时并且它的内容超过255时,activescaffold提交就会不正常,虽然能保存但是却返回到show页面了。
它的原因是因为activescaffold把所有字段值作为参数放到了url里面,这样便会导致url长度超限的问题。解决的方法是将activescaffold的return_to_main方法进行改写.如下
module ActiveScaffoldReturnMain
def self.included(subclass)
subclass.alias_method_chain :return_to_main, :inherited
end
protected
def return_to_main_with_inherited
if ['Create', 'Update'].include?(params[:commit])
params[:record].delete(:body)
params[:record].delete(:introduction)
params[:record].delete(:introduction_zh_cn)
params[:record].delete(:introduction_en_us)
params[:record].delete(:picture)
params.delete(:uploaded_data)
redirect_to params.merge(:action => "index")
else
return_to_main_without_inherited
end
end
end
ActiveScaffold::Actions::Core.send(:include, ActiveScaffoldReturnMain) if defined? ActiveScaffold::Actions::Core
将这个文件放到lib里即可。
当使用ActiveScaffold编辑包含大量文本的字段时,可能会遇到URL过长导致的操作异常。本文提供了一种解决方案,通过修改return_to_main方法来避免这一问题。
2万+

被折叠的 条评论
为什么被折叠?



