小编Mic*_*per的帖子

数组中的字母顺序,顶部有多个默认值

我有一个带字符串的数组,我想按字母顺序排列,但有一些默认值在顶部.例如:

["a", "b", "default1", "d", "default2", "c", "e"]
Run Code Online (Sandbox Code Playgroud)

我希望结果如下:

["default1", "default2", "a", "b", "c", "d", "e"]
Run Code Online (Sandbox Code Playgroud)

有人知道如何轻松完成这项工作?

UPDATE

默认值也包含在数组中,数组按字母顺序排列.

ruby arrays

3
推荐指数
1
解决办法
148
查看次数

Rails多选默认值

我正在编写一个脚本,允许管理员为用户分配多种语言.

我的多选工作方式如下:

<%= fields_for :users_languages do |u| %>
        <div class="field">
        <%= @lang_list.inspect %>
            <%= u.label :Assign_Languages %><br />
            <%= select_tag :language_id, options_for_select(Language.all.collect {|lang| [lang.english, lang.id]}),:multiple => true, :prompt => 'Select Language' %>
         </div>
    <% end %>
Run Code Online (Sandbox Code Playgroud)

但是当我进入编辑用户时,他们的语言没有显示为自动选择.我该怎么做呢?

ruby-on-rails

2
推荐指数
1
解决办法
3761
查看次数

是否存在所有国家/地区的Yaml或SQL插入列表?

可能重复:
我在哪里可以获得所有国家/城市的列表以填充列表框?

我正在寻找一个创建所有国家的脚本.有人知道我可以在Ruby中轻松使用的免费ISO列表吗?

我可以在谷歌上找到列表但我不幸用yaml,csv或SQL插入.

我对西班牙的所有城市也很感兴趣.

编辑:国家+国家代码

Edit2:对西班牙所有城市都感兴趣.

ruby csv iso yaml ruby-on-rails

2
推荐指数
1
解决办法
927
查看次数

SQL查询:每月用户增长百分比

我有这个简单的查询,可以计算每月的用户注册数量.

SELECT TO_CHAR(created_at, 'YYYY-MM') AS month, COUNT(user_id)
FROM users
GROUP BY month
ORDER BY month DESC 
Run Code Online (Sandbox Code Playgroud)

我希望每个月的百分比增长与上个月相比.

sql postgresql

2
推荐指数
1
解决办法
1903
查看次数

我收到错误:在Ruby中编写了大量文件后打开的文件过多

我有一个脚本生成16000个html页面并将其保存在系统中.1013页后,我收到错误:打开文件太多.

这是生成文件的Ruby代码

FileUtils.mkdir_p "public/users_directory/#{DEFAULT_COUNTRY_CODE}/#{prefix}"
FileUtils.mkdir_p "public/users_directory/#{DEFAULT_COUNTRY_CODE}/#{prefix}/#{n/1000}"

html_file = File.new("public/users_directory/#{DEFAULT_COUNTRY_CODE}/#{prefix}/#{n/1000}/#{n}.html", "w")
html_file.write(html)
html_file.close
Run Code Online (Sandbox Code Playgroud)

你可以看到我在最后一行关闭文件....

有人知道我在做错了什么吗?我有Ubuntu 8.04.4 LTS

非常感谢

编辑:

这是整个脚本

    def self.fetching_directory_page(n=1, letter = nil)
      id = letter == '' ? "" : "/#{letter.upcase}"
      url = "this is a valid url :)"
      agent = WWW::Mechanize.new
      page = agent.get(url)
      html = page.search('div#my_profile_body').to_html

      prefix = id == '' ? 'all' : letter
      FileUtils.mkdir_p "public/users_directory/#{DEFAULT_COUNTRY_CODE}/#{prefix}"
      FileUtils.mkdir_p "public/users_directory/#{DEFAULT_COUNTRY_CODE}/#{prefix}/#{n/1000}"

      html_file = File.new("public/users_directory/#{DEFAULT_COUNTRY_CODE}/#{prefix}/#{n/1000}/#{n}.html", "w")
      html_file.write(html)
      html_file.close

      puts "+ CREATED #{prefix}/#{n/1000}/#{n}.html" 

      new_url = page.parser.xpath("//a[@class='next_page']")[0]['href'] rescue nil

      if new_url.present? …
Run Code Online (Sandbox Code Playgroud)

ruby ubuntu ruby-on-rails

1
推荐指数
1
解决办法
7123
查看次数

将BigDecimal保存到数据库中的十进制字段会使BigDecimal不同

我一直认为你永远不应该使用浮动来节省数据库中的钱.所以我使用小数.问题是我保存十进制100并将其作为99.9999放在数据库中

我有一个名为GameCommission的模型

移民:

create_table :game_commissions, :force => true do |t|
  t.integer :game_id
  t.integer :widget_id
  t.integer :user_id
  t.decimal :amount, :precision => 6, :scale => 4, :default => 0
  t.date :end_date
  t.timestamps
end
Run Code Online (Sandbox Code Playgroud)

现在我快速制作一个新的GameCommission:

amount = BigDecimal.new("100")
gc = GameCommission.new(:game_id => 1, :widget_id => 1, :user_id => User.last.id, :amount => amount, :end_date => Date.today)
gc.save
gc.amount.to_s
# => "100
Run Code Online (Sandbox Code Playgroud)

金额现在是100,这就是我想要的.但是,如果我再次获取它,金额将更改为99.9999,这也是数据库中保存的金额....

gc = GameCommission.last
gc.amount.to_s
# => "99.9999"
Run Code Online (Sandbox Code Playgroud)

有人知道发生了什么事吗?

ruby floating-point ruby-on-rails bigdecimal

1
推荐指数
1
解决办法
3819
查看次数

标签 统计

ruby ×4

ruby-on-rails ×4

arrays ×1

bigdecimal ×1

csv ×1

floating-point ×1

iso ×1

postgresql ×1

sql ×1

ubuntu ×1

yaml ×1