Tag: 数组

计算运行总轨数3

在Rails中计算运行总计的最佳方法 – 或者实际上是什么方式 – 是什么? 我有一个模特,Sale。 它有一个数量列和一个sales_value列。 当表按isbn_id排序,然后是channel_id,然后是invoice_date时,我需要填充第三列,total_quantity,以及先前记录的数量值的总和。 这设置了各种合理的数据库管理警报响铃,所以我想知道它是否可能。 需要此累积金额的原因是对累计数量在特定范围内的销售额应用百分比。 我不能在所有记录中使用平均销售价值,因为销售利润率会随着时间的推移而发生显着变化 – 因此我会将平均值应用于可能超过或低于特许权使用费收入者的一堆销售额。 所以。 我应该在Sale模型上执行before_save回调,并以某种方式执行update_attribute吗? 当表以特定方式排序时,是否有一种方法可以返回上一条记录的值? 或者我应该将所有Sale记录转储到一个数组中,并且可能使用inject来累积运行总计? 任何想法最受欢迎,提前感谢。 更新: 此处询问后续问题。

如何使用Ruby on Rails将字符串转换为数组

我有一个文本字段,它接受一个字符串值,如 “games,fun,sports” 我的主要目标是获取字符串并将其转换为如下所示的数组: [games, fun, sports] 在我拥有的集成对象的filters属性中。 现在我有一个似乎不起作用的方法的开头。 这是我的代码: 视图: :integrations, :action => :update, :id => @integrations.id) do |f| %> 这是接收字符串的文本字段。 模型: def filters=(filters) end 这是我想从字符串切换到数组的地方。 控制器: def update @integrations = current_account.integrations.find(params[:id]) if @integrations.update_attributes(update_params) flash[:success] = “Filters added” redirect_to account_integrations_path else render :filters end end def filters @integrations = current_account.integrations.find(params[:id]) end private def update_params [:integration_webhook, […]

查询int是否在数组列内,Postgres with Rails

我有一个表格,其中包含整数数组类型的列。 给定一个整数作为输入,我想查询名为tipo_propiedad的列包含输入整数的行。 直接在Postgres中,可以使用&&运算符并将输入int转换为数组。 问题是使用这个: Zone.where(“tipo_propiedad && ?”, [].push(type)).count 其中type是输入整数,给出 SELECT COUNT(*)FROM“zonas”WHERE(tipo_propiedad && 1)PG :: UndefinedFunction:ERROR:operator不存在:integer [] && integer 我也尝试过 Zone.where(“tipo_propiedad && ?”, [5].push(type)) 因为tipo_propiedad里面只有1,2或3个而且给出了 SELECT COUNT(*)FROM“zonas”WHERE(tipo_propiedad && 5,1)PG :: UndefinedFunction:ERROR:operator不存在:integer [] && integer 我也在使用squeel但是gem没有任何操作符来执行此操作。

Rails 4 Postgresql数组数据类型:更新值

我刚刚开始在Postgres中使用Rails 4中的数组数据类型,但是我无法在现有数组上获取值以进行更新。 我有一个名为’quantity’的列,它是一个整数数组([0,0])。 我想更新’quantity [0]’的值,我在控制台中尝试了以下内容: a = Asset.find(2) => # a.quantity[0] = 5 => 5 a.quantity_will_change! => [5, 0] a.save => true a.reload => # 如您所见,资产对象的数量值是变化的,但是当我尝试使用“a.save”保存对象时,重新加载对象时不会反映更改。 任何帮助将不胜感激。 谢谢

rails从hash数组中选择最大值

我有一个像这样的哈希数组,我想采取最大的价值 data = [{name: “abc”, value: “10.0”}, {name: “def”, value: “15.0”}, {name: “ghi”, value: “20.0”}, {name: “jkl”, value: “50.0”}, {name: “mno”, value: “30.0”}] 我想选择哈希数组的最大值,我想要的输出就像数据:“50.0” 我怎么可能这样做,我试过这个,但它似乎不起作用,只是给我一个错误 data.select {|x| x.max[‘value’] } 任何帮助将非常感激

带有数组作为属性的Ruby模型

我目前正在尝试实现一个模型来简化图形图表的创建。 但是,其中一个属性必须是属性数组。 例如: “Chart_Series”有一个“名称”,它是一个字符串和一个数据字段,它将由日期分隔,日期是数组[[Date1,Value1],[Date2,Value2],[Date3,Value3]的数组。 目的是创建一个“Chart_Series”数组,以便调用类似于: for series in @chart_series series.name for data in series.data data.[Date, Value] end end 这将做的事情: Name1 Date1, Value1 Date2, Value 2, Date3, Value 3, Date4, Value 4, Name2 Date1, Value 1, Date2, Value 2, Date3, Value 3, Date4, Value 4, 这不完全是所需的代码。我感兴趣的是简单地生成可以做这样的事情的模型。 任何帮助表示赞赏

给出另一个散列的散列,包括有关order方法的信息

我正在使用Ruby on Rails 3.0.7,我想通过返回排序array甚至是新排序的hash考虑预设顺序对hash进行排序。 也就是说,给定以下hash ,例如HASH1(我认为它的值表示从1到4的顺序方法) { :dog => 3, :cat => 2, :pig => 4, :frog => 1 } 我想通过考虑HASH1值中给出的顺序,按键来解释另一个hash ,比如HASH2 { :cat => ‘cat_value’, :dog => ‘dog_value’, :frog => ‘frog_value’, :pig => ‘pig_value’ } 所以,在上面的例子中,我应该输出如下的输出\有序hash : { :frog => ‘frog_value’, # Order indicated by ‘:frog => 1’ in the HASH1 :cat => ‘cat_value’, […]

Ruby循环和类; 将字符串拆分为数组并再次返回字符串

Ruby新手在这里处理循环与类。 我应该创建一个方法,它将采用一个字符串并在每个单词的末尾添加感叹号(通过使其成为一个带有.split的数组)并再次将“惊呼”的单词作为字符串加入。 我已经在这里待了两个小时,并决定我应该寻求帮助。 我有一些想法,但我不断提出NoMethod错误。 以下是对我有意义的方法之一,但当然,它不起作用。 我还在最后添加了规格。 class StringModifier attr_accessor :string def initialize(string) @string = string end def proclaim new_array = [] string.split.each do |word| new array = “#{word}!” new_array.join end new_array end end 眼镜 describe StringModifier do describe “#proclaim” do it “adds an exclamation mark after each word” do blitzkrieg_bop = StringModifier.new(“Hey ho let’s go”).proclaim […]

找到数组的文章

我目前正在将数据库中的标签存储为一串数组 我想找到基于数组的文章 Article.find_by(tags: ‘xbox’) 但这会带来错误。 也: Article.where(tags: ‘xbox’) 这告诉我,我必须插入{}来查找数组 Article.where(tags: ‘{xbox}’) 这不会带来任何错误,但它也找不到任何错误 #=> # 如果我做 Article.where(tags: ‘{“”, “playstation 3”, “playstation”, “xbox”, “test”}’) 这会找到它,但我只想在你输入一个数组时找到它。 谢谢

在Rails 4中动态创建哈希键名

是否可以动态创建哈希的键名? 我传递了以下哈希参数: params[:store][:store_mon_open(5i)] params[:store][:store_mon_closed(5i)] params[:store][:store_tue_open(5i)] params[:store][:store_tue_closed(5i)] . . . params[:store][:store_sun_open(5i)] params[:store][:store_sun_closed(5i)] 要检查每个参数是否存在,我使用两个数组: days_of_week = [:mon, :tue, …, :sun] open_or_closed = [:open, :closed] 但是,我似乎无法弄清楚如何动态创建params散列(第二个键(带数组)。这是我到目前为止所拥有的: days_of_week.each do |day_of_week| open_or_closed.each do |store_status| if !eval(“params[:store][:store_#{day_of_week}_#{store_status}(5i)”).nil [DO SOMETHING] end end end 我尝试了很多东西,包括eval方法(如上所列),但rails似乎不喜欢围绕“5i”的括号。 任何帮助是极大的赞赏!