如何用haml替换字符串的下划线

时间:2012-02-17 06:33:21

标签: ruby-on-rails haml rails-admin

我使用rails_admin

我的一个偏见是这样的:

%b= questionnaire.title

- CSV.parse(questionnaire.content, :headers => true, :col_sep => ",") do |row|    
  - row.to_hash.each do |key, value| 
    = succeed value do
      %b= key  + " : "

但关键有时候就像这个“I_dont_want_underscore”

我试过了:

 %b= questionnaire.title

  - CSV.parse(questionnaire.content, :headers => true, :col_sep => ",") do |row|    
    - row.to_hash.each do |key, value| 
      = succeed value do
        %b= key.gsub!-'_',' ')  + " : "

然后我出现了这个错误:无法转换冻结的字符串(或类似的东西) 然后我试着复制

%b= questionnaire.title     
- CSV.parse(questionnaire.content, :headers => true, :col_sep => ",") do |row|    
  - row.to_hash.each do |key, value| 
    = succeed value do
      %b= key.dup.gsub!-'_',' ')  + " : "

但是服务器不再响应......怎么回事? 最后 我试着在我的application_helper.rb

中添加一个def
def sub_underscore
 self.dup.gsub!-'_',' ')
end

%b= questionnaire.title
  - CSV.parse(questionnaire.content, :headers => true, :col_sep => ",") do |row|    
    - row.to_hash.each do |key, value| 
      = succeed value do
        %b= key.sub_underscore  + " : "

但我收到此错误:“此字符串没有方法sub_underscore”

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用gsub!您正在修改字符串。这不是你需要的。请尝试使用gsub