小编Bri*_*ian的帖子

Rails 3.2 HTML5 多文件上传,Carrierwave 和无 Javascript

目前使用 Rails 3.2 和 Carrierwave。

我有多个文件设置,但它需要多个文件字段,但我只想要一个文件字段。如果浏览器不支持 HTML5 多重属性,我将提供它作为默认值。

控制器

def new
   @ad = Ad.new
   5.times { @ad.images.build } // provides multiple file fields in the view.
end

def create
  ad = Ad.new(params[:ad])
  user = User.find(session[:user_id])
  if user.ads << ad
    flash[:notice] = "Ad successfully saved."
    redirect_to ad_listing_path(ad.id, ad.slug)
  else
    render :new, :alert => "Ad was not saved."
  end
end
Run Code Online (Sandbox Code Playgroud)

看法

<%= f.fields_for :images do |a| %>
  <% if a.object.new_record? %>
     <%= a.file_field :image, :multiple => true %><br>
  <% end %>
<% …
Run Code Online (Sandbox Code Playgroud)

html file-upload ruby-on-rails-3 carrierwave

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

Ruby - 使用动态键排序

我有一系列哈希:

array = [
    {
        id: 1,
        name: "A",
        points: 20,
        victories: 4,
        goals: 5,
    },
    {
        id: 1,
        name: "B",
        points: 20,
        victories: 4,
        goals: 8,
    },
    {
        id: 1,
        name: "C",
        points: 21,
        victories: 5,
        goals: 8,
    }
]
Run Code Online (Sandbox Code Playgroud)

要使用两个键对它们进行排序,我会:

array = array.group_by do |key| 
[key[:points], key[:goals]] 
end.sort_by(&:first).map(&:last)
Run Code Online (Sandbox Code Playgroud)

但是在我的程序中,sort标准存储在数据库中,我可以将它们存储在一个数组中,例如:["goals","victories"]["name","goals"].

如何使用dinamic键对数组进行排序?

我尝试了许多方法,没有这样的成功:

criterias_block = []
criterias.each do |criteria|
    criterias_block << "key[:#{criteria}]"
end

array = array.group_by do |key| 
    criterias_block 
end.sort_by(&:first).map(&:last)
Run Code Online (Sandbox Code Playgroud)

ruby arrays hash

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

标签 统计

arrays ×1

carrierwave ×1

file-upload ×1

hash ×1

html ×1

ruby ×1

ruby-on-rails-3 ×1