2012-02-23 39 views
2

在我的控制,我有:的Rails不能修改凍結串

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 

回答

9

你不能force_encoding在結冰的字符串,因爲這將改變它。你可以做的是使用副本:

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