您如何使用正在更新的记录的旧值?
例如,在以下代码块中,在确定它确实已更改后,如何使用先前的winner_id字段运行查询?
if self.winner_id_changed?
old_value = self.changed_attributes
User.find(old_value)
#do stuff with the old winner....
end
Run Code Online (Sandbox Code Playgroud)
输出的示例self.changed_attributes将是:
{ "winner_id"=> 6}
我是否真的必须将其转换为字符串并解析该值才能对其执行查询?old_value[:winner_id]好像什么也没做.
我有一个表,用户可以使用许多不同类型的组合以各种方式进行过滤.有了我从用户那里得到的所有输入数据,我从SQL中逃脱用户数据非常重要,这导致了我现在遇到的问题.我有两个基于发送到动作的参数动态构建的数组,一个数组包含SQL子句,另一个数组包含要与其相应的caluse配对的值......例如......
def results
sql_clauses = Array.new
sql_args = Array.new
unless params[:elapsed_time].nil?
sql_clauses << "elapsed_time = ?"
sql_args << params[:elaped_time]
end
unless params[:age_greater_than].nil?
sql_clauses << "age > ?"
sql_args << params[:age_greater_than]
end
.....
@results = Model.where(sql_clauses.join(" and "), sql_args.join(", "))
end
Run Code Online (Sandbox Code Playgroud)
现在这将sql_clauses数组发送到where方法没问题.但它在第二个参数上爆炸,因为它返回一个字符串,并且它期望各个变量与每个"?"相对应.出现在sql_clauses数组中的字段.我已经尝试过KandadaBoggu提供的关于Comine条件数组的解决方案.这两个选项都不适合我,但可能是因为我使用2个数组而不是1个.
有人知道我的问题的解决方案吗?
我正在尝试在JQuery中循环变量并重新分配this以下Coffeescript中的值.
$.each data.rows, ->
completion_time = [this[0], new Date(new Date('Jan 01 2000').getTime() + this[1])]
this = completion_time
Run Code Online (Sandbox Code Playgroud)
但是,这会产生以下错误消息:
SyntaxError:无法分配保留字"this"
在每次迭代中,值this看起来像这样:
["abc123",12302103,1230132,1230123]
我要做的是将其重新分配给以下值:
["abc123",12302103]
我也尝试过分配this.value,没有骰子.有什么建议?
我有以下代码:
>[['string', 'User'], Foo.all.map {|c| ["number", c.name]}, ['number', 'Average Time']]
=> [["string", "User"], [["number", "Bar1"], ["number", "Bar2"], ["number", "Bar3"]], ["datetime", "Average Time"]]
Run Code Online (Sandbox Code Playgroud)
我想做的是将传递的Foo可枚举数组简化为:
=> [["string", "User"], ["number", "Bar1"], ["number", "Bar2"], ["number", "Bar3"], ["datetime", "Average Time"]]
Run Code Online (Sandbox Code Playgroud)
我尝试了以下但是它没有做我想要的事情:
>[['string', 'User'], Foo.all.map {|c| ["number", c.name]}.flatten, ['number', 'Average Time']]
=> [["string", "User"], ["number", "Bar1", "number", "Bar2", "number", "Bar3"], ["datetime", "Average Time"]]
Run Code Online (Sandbox Code Playgroud)
请注意,在测试时,您可以使用示例输出演示替换Fool.all.map部件[["number", "Bar1"], ["number", "Bar2"], ["number", "Bar3"]].
arrays ×2
activerecord ×1
coffeescript ×1
dynamic ×1
enumerable ×1
javascript ×1
jquery ×1
ruby ×1