【问题标题】:Ruby on Rails rjust Not Returning Expected ValueRuby on Rails 只是不返回预期值
【发布时间】:2013-10-21 14:52:23
【问题描述】:

我在辅助函数中使用rjust,如下所示:

def get_child_id(service_name, child_id)
  ..
  return 'FL' + child_id.to_s.rjust(6, "0");
end

函数被这样调用:

<%= get_child_id(@ticket.service_type, @ticket.service_id) %>

并返回FL123456123456 是数据库值)而我希望FL000000123456

service_id 是数据库中的 INT 列。

我在我的模型中以完全相同的方式使用rjust,它工作正常,所以我不知道为什么它不能在这里工作,有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-2


    【解决方案1】:

    改用12

    def get_child_id(service_name, child_id)
      # ...
      return 'FL' + child_id.to_s.rjust(12, "0");
    end
    

    【讨论】:

      【解决方案2】:

      试试这个

      来自 ruby​​ 文档:-

       rjust(integer, padstr=' ') → new_str
      

      如果整数大于str的长度,则返回一个新的String 长度整数,str 右对齐并用 padstr 填充; 否则,返回 str。

      "hello".rjust(4)            #=> "hello"
      "hello".rjust(20)           #=> "               hello"
      "hello".rjust(20, '1234')   #=> "123412341234123hello"
      

      这意味着您希望在案例 12 中填充超过 6。

      【讨论】:

        猜你喜欢
        • 2021-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-08
        • 1970-01-01
        • 2013-06-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多