【问题标题】:Rails can't modify frozen stringRails 无法修改冻结的字符串
【发布时间】:2012-02-24 06:01:25
【问题描述】:

在我的控制器中,我有:

def index
    @title = 'asdsadas'
    @kategoris = Tag.where("name like ?", "%#{params[:q]}%")
    respond_to do |format|
    format.html
    format.json { render :json => @kategoris.map(&:attributes).map{|d| d.map{|d| d.map{|d| d.force_encoding("UTF-8") } } } }
    end
end

我看到这个错误:

RuntimeError in Admin::TagsController#index

can't modify frozen string

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3


    【解决方案1】:

    你不能force_encoding 在冻结的字符串上,因为那样会修改它。您可以做的是使用副本:

    d.map{ |d| d.dup.force_encoding("UTF-8") }
    

    【讨论】:

      猜你喜欢
      • 2016-03-26
      • 1970-01-01
      • 2021-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      相关资源
      最近更新 更多