加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 剥离字符串的第一个字符

发布时间:2020-12-17 02:51:22 所属栏目:百科 来源:网络整理
导读:我有 string = "$575.00 "string.to_f// = 0.0string = "575.00 "string.to_f// = 575.0 进来的值是这种格式,我需要插入一个十进制的数据库字段任何建议 "$575.00 " 解决方法 我们经常这样做,我们经常写一个名为cost_to_f的String扩展: class String def co
我有

string = "$575.00 "
string.to_f
// => 0.0

string = "575.00 "
string.to_f
// => 575.0

进来的值是这种格式,我需要插入一个十进制的数据库字段任何建议

"$575.00 "

解决方法

我们经常这样做,我们经常写一个名为cost_to_f的String扩展:

class String
  def cost_to_f
    self.delete('$,').to_f
  end
end

我们将这些扩展存储在config / initializers / extensions / string.rb中.

然后你可以简单地打电话:

"$5,425.55".cost_to_f   #=> 5425.55

如果你很少使用这种方法,最好的办法就是简单地创建一个函数,因为向核心类添加函数并不是我会轻易推荐的东西:

def cost_to_f(string)
  string.delete('$,').to_f
end

如果您需要多个类,可以随时将其放在模块中,然后将该模块包含在您需要的任何位置.

再多一点点.您提到在将字符串写入数据库时??需要处理该字符串.使用ActiveRecord,最好的方法是:

class Item < ActiveRecord::Base
  def price=(p)
    p = p.cost_to_f if p.is_a?(String)  
    write_attribute(:price,p)
  end
end

编辑:更新为使用String#delete!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读