小编Gar*_*ett的帖子

更好的协会表现

现在我有一个名为Campaigns的表,如果我打电话说:

Campaign.find(30).hits

这需要4秒,或4213毫秒.

如果我这样称呼:

campaign = Campaign.find(30)
campaign.hits.count

它仍然加载所有的命中,然后计数?或者是否看到我在计算并避免加载所有的点击?(目前有300,000多行).

我试图找出一种智能的方法来加载/计算我的命中.我正在考虑向Campaign.rb模型添加一个方法,例如:

def self.total_hits
   find :first, :select => 'COUNT(id) as hits', :conditions => ["campaign_id = ?", self.id]
end

我知道查询不会从hits表中加载,但这只是从自制查询中计算它的一个例子,它适用于Ruby on Rails为我做这个.

这个memcache查询会更有效吗?(我让它运行,但似乎没有更好/更快/更慢,只是相同的速度.)

def self.hits
    Rails.cache.fetch("Campaign_Hits_#{self.campaign_id}", :expires_in => 40) {
      find(:first, :select => 'COUNT(id) as hits', :conditions => ["campaign_id = ?", self.campaign_id]).hits
    }
end

任何建议都会很棒!

activerecord ruby-on-rails associations

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

最佳应用代表实践

我一直在这里和那里制作一些应用程序,我知道我的方式.让我困惑的是访问全局属性,以及设置它们的最佳位置.我有一些关于访问事物以及如何访问它们的问题.

您是否必须将应用程序委托头文件包含在要访问它的任何其他文件中?假设我有一个视图控制器,我想使用,我是否需要在视图控制器的.h中包含.h?或者我可以设置:

@class AppDelegate;
Run Code Online (Sandbox Code Playgroud)

您是否只能通过输入以下内容来访问该委托:

[UIApplication sharedApplication].delegate
Run Code Online (Sandbox Code Playgroud)

每一次?这是我必须习惯的东西吗?或者我可以在每个.h中的实现中设置以下内容:

AppDelegate *delegate;
Run Code Online (Sandbox Code Playgroud)

init函数内部,将单例实例放到该变量中?

对不起,如果这是关闭结构,但我认为这是一个合乎逻辑的问题,人们遇到问题和解决.

iphone

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

使用Ruby批量循环模型

我知道find_in_batchesActiveRecord 的方法,但这不允许我设置我的:order:limit.

我正在尝试遍历我的数据,并且每6个项目我想将它们包装在<div>中.

我试图整个......

<%
i = 0
@media.each do |media|
%>
<% if i%6 %><div class="section"><% end %>
    [...]
<% if i%6 %></div><% end %>
<%
i += 1
end
%>
Run Code Online (Sandbox Code Playgroud)

但我觉得这种"Rails"方式效率不高.我可以将我的阵列分成4个不同的6个阵列吗?我正试图找到最好的方法,并希望你们可以帮助.

最后我需要它出来这样的东西:

<!--
  I have 24 items in my array, and I need to wrap every 6 inside a div.
-->
<div class="section">
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
</div>

<div class="section">
   <div class="item"></div> …
Run Code Online (Sandbox Code Playgroud)

ruby activerecord loops ruby-on-rails

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

会话不会通过域

在我的rails应用程序中,当我登录www.site.com地址时,我已经登录了.虽然没有退出,我去了网站,http://site.com我已经注销,但如果我回去,仍然会登录www.site.com地址.

我在环境变量中找不到任何设置,有关如何在我的域上的所有域中保持此会话的任何想法?

session ruby-on-rails

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

MySQL性能

最近我在缓存到memcache之前的查询一直在处理!在这个例子中,花了10秒钟.我想要做的就是在这种情况下获得最近的10次点击.

我感觉它加载了所有125,592行然后只返回10,我是对的吗?

# User@Host: root[root] @ localhost []
# Query_time: 10  Lock_time: 0  Rows_sent: 10  Rows_examined: 125592
SELECT * FROM hits WHERE campaign_id = 30 ORDER BY id DESC LIMIT 10;

这是另一个慢查询:

# Time: 090214  5:00:40
# User@Host: root[root] @ localhost []
# Query_time: 3  Lock_time: 0  Rows_sent: 1  Rows_examined: 128879
SELECT count(DISTINCT(ip_address)) AS count_distinct_ip_address FROM `hits` WHERE (campaign_id = 30);

在运行查询phpMyAdmin时,需要1.3395秒.虽然SELECT * FROM hits只需要0.0001秒.我觉得很奇怪,返回所有的点击次数少于排序,或者就是这样,我正在整理它们?

对于那些想看我的桌子的人:

CREATE TABLE `hits` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `hostname` varchar(255) …

mysql memcached caching ruby-on-rails

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

您在项目中编辑的文件最多?

最近我一直在编辑一个CSS文件,这让我想到你在项目中最接触的文件是什么?

对我来说environment.rb,en.yml如果我在Rails中进行编码,它将是文件或文件.

我想在这里用最频繁的文件更新列表.

轨道

  • 的environment.rb
  • en.yml

file project

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