`
njsyshu
  • 浏览: 4035 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

active_scaffold更新model时字段过长

 
阅读更多

 编辑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里即可。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics