所以基本上我有很多担心让我退回coffeescript:
我还不是js的专家,即使我已经使用它大约3年了,我仍然觉得我错过了一些重要的东西.由于它对我来说主要是一种支持性的技术,我从来没有时间深入了解js(我承认,这可能是一种错误的态度).
如果我开始使用coffeescript,我的知识将变得更糟
我不确定我是否真的可以信任coffescript,这意味着它编译的js代码
有时我不明白js代码coffeescript编译甚至更糟 - 为什么它编译这样.
我想知道你对以上几点的看法.关键的一点是:如何使用coffeescript影响你对js的了解?在切换到coffeescript之前,你认为完全理解js有多重要?
所以基本上我想知道是否有一些常用的方法来定义自己的关联类型.一些细节:
我有一个conversations具有PG阵列列的模型user_ids.因此,要检索我需要运行的用户对话:
select conversations.* from conversations where USER_ID = ANY(conversations.user_ids)
既然finder_sql现在已经弃用了它的朋友,我真的想知道实现这个伪has_many关联的最佳方法是什么?
目前我只是使用如下方法:
def conversations
Conversation.where("#{id} = ANY (conversations.users)")
end
Run Code Online (Sandbox Code Playgroud)
所以基本上我正在考虑实现自己的,ActiveRecord::Associations::CollectionAssociation并想知道是否有一些很好的参考,或者你是否可以建议从哪里开始
我刚刚面对这种我不太懂的行为.
module M
def foo
"module_foo"
end
end
class C
def foo
"class_foo"
end
include M
end
puts C.new.foo
Run Code Online (Sandbox Code Playgroud)
为什么C.new.foo实际回归class_foo?我非常确定该方法应该被模块中的方法覆盖.另一件事,取而代之"class_foo"的super是C.new.foo返回`"module_foo"
实际上看起来模块在定义类实例方法之前以某种方式包含在内.你能澄清一下吗?
几个月前我一直在使用一些红宝石库(我不记得哪一个,不幸的是)
我很惊讶地看到它允许我用这样的东西初始化它的实例:
Lib::SOMETHING(args)
Run Code Online (Sandbox Code Playgroud)
我真的不明白它是如何工作的.我非常确定它应该是动态的东西(没有SOMETHING常量),比如constant_missing模块方法,或者可能ConstantMissing以某种方式处理异常.
你能建议吗?
所以基本上我有这个范围(sql):
scope.to_sql
=> "SELECT \"offers\".* FROM \"offers\" INNER JOIN \"cities_offers\" ON \"offers\".\"id\" = \"cities_offers\".\"offer_id\" WHERE \"cities_offers\".\"city_id\" = 2 AND \"offers\".\"category_id\" IN (2) AND (offers.category_id is NOT NULL) ORDER BY offers.discount desc LIMIT 25 OFFSET 0"
Run Code Online (Sandbox Code Playgroud)
不知何故,上述查询的记录顺序不同,而且没有LIMIT和OFFSET的记录顺序不同:
scope[6]
=> #<Offer id: 8629 ...
scope.except(:offset, :limit)[6]
=> #<Offer id: 8729 ...
Run Code Online (Sandbox Code Playgroud)
8629和8729记录具有相同的discount值(我按顺序排列的属性).
如果可以在这些情况下保持相同的记录订购,请您提供建议吗?
基本上我有一个表messages,其中user_id包含标识创建消息的用户的字段.
当我在两个用户之间显示一个对话(一组消息)时,我希望能够user_id按照一种棘手的方式对消息进行分组:
假设有一些消息(排序依据created_at desc):
id: 1, user_id: 1
id: 2, user_id: 1
id: 3, user_id: 2
id: 4, user_id: 2
id: 5, user_id: 1
Run Code Online (Sandbox Code Playgroud)
我希望按以下顺序获得3个消息组:
[1,2], [3,4], [5]
它应该按*user_id*分组,直到它看到另一个,然后按那个分组.
我正在使用PostgreSQL,并乐意使用特定的东西,无论什么能带来最佳性能.
所以这就是我想做的:
我有许多事件,每个事件代表一个日期时间范围(如 07.03.2014 06:00 - 07.03.2014 08:00)事件关联(一对多)到hall_schedule.
然后我想搜索所有hall_schedule's没有涵盖某个特定时间范围的事件的事件,例如:
“我想要所有大厅活动不涵盖 07.03.2014 06:00 - 07.03.2014 08:00 范围的 Hall_schedules”
那么问题来了,为了获得最好的性能,我该如何设计呢?存储事件并稍后进行所描述的搜索的最佳方式是什么?
我很高兴使用 postgresql (9.3) 特有的东西,无论什么都能提供最佳性能
postgresql ×3
ruby ×3
sql ×3
activerecord ×1
coffeescript ×1
javascript ×1
mixins ×1
module ×1
plpgsql ×1
sql-order-by ×1